Skip to content

Instantly share code, notes, and snippets.

@pknowledge
Created March 17, 2020 15:36
Show Gist options
  • Save pknowledge/1feef32fa21475eb9742ea247aefe1af to your computer and use it in GitHub Desktop.
Save pknowledge/1feef32fa21475eb9742ea247aefe1af to your computer and use it in GitHub Desktop.
@ECHO OFF
if EXIST "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" goto UNLOCK
if NOT EXIST Private goto MDPrivate
:CONFIRM
echo Are you sure to lock this folder? (Y/N)
set/p "cho=>"
if %cho%==Y goto LOCK
if %cho%==y goto LOCK
if %cho%==n goto END
if %cho%==N goto END
echo Invalid choice.
goto CONFIRM
:LOCK
ren Private "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
attrib +h +s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
echo Folder locked
goto End
:UNLOCK
echo Enter password to Unlock Your Secure Folder
set/p "pass=>"
if NOT %pass%== YOUR-PASSWORD goto FAIL
attrib -h -s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
ren "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" Private
echo Folder Unlocked successfully
goto End
:FAIL
echo Invalid password
goto end
:MDPrivate
md Private
echo Private created successfully
goto End
:End
@BleEthan
Copy link

Is there a file size limit? There seems to be one for me.

@unknown2832021
Copy link

It's so simple and easy how the way it works. Thank you for sharing this acknowledgement.

@MrLagag
Copy link

MrLagag commented Nov 29, 2021 via email

@MrLagag
Copy link

MrLagag commented Nov 29, 2021 via email

@Its-PJ
Copy link

Its-PJ commented Dec 4, 2021

It was working for a while, but now whenever I try to use it all it does is change the folder name to Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D} without hiding it.

@MrLagag
Copy link

MrLagag commented Dec 4, 2021 via email

@Its-PJ
Copy link

Its-PJ commented Dec 4, 2021

@MrLagag. This a problem no matter what folder the batch file is used in or on. I am not sure what changed., but simply making a new folder doesn't work.

@MrLagag
Copy link

MrLagag commented Dec 4, 2021 via email

@DevanshJ1709
Copy link

Nice... It's working at my end

@hr097
Copy link

hr097 commented Dec 25, 2021

//here is my console application code but yo can change getdatabase() to your requirement and modify function according to your requirement
//in lockDatabase() path variable is there you just need to give path of folder you wan to lock just that simple
// is you like this then please follow me on github : https://github.com/hr097

#include
#include <windows.h>
#include
#include <stdlib.h>
#include <direct.h>
#include <shlobj.h>

using namespace std;

class dataBase
{
private:

string tempStorage,command;

void writeDataToFile(string path, string write_data) //?write string data to given path file at latest line
{
    ofstream write(path.c_str(), ios::app); //file opened in append mode 

    if (!write.is_open())//if file is not opened 
    { 
      cout << "something went wrong...";
      exit(1);
    }
    else
    {
      write << write_data << endl; // write data
    }
     write.close();//file closed
}

string getDataBasePath()
{
  string AMS_Path;

  CHAR pathDocument[MAX_PATH];   // string to store path
  HRESULT result = SHGetFolderPath(NULL, CSIDL_PERSONAL, NULL,SHGFP_TYPE_CURRENT,pathDocument); // getting documents path

  if (result == S_OK) // check if documents path is successfully stored in pathdocuments
  {
    AMS_Path = pathDocument;       // take original documents path into string
    AMS_Path = AMS_Path + "\\{JSN-1008-JSK-22-10-2021}"; // making AMS folder path
  }
  else
  { 
    cout <<endl << "something went wrong....";
    exit(1);
  }

  return(AMS_Path);
}


public:

void lockDataBase() 
{  
    string path = getDataBasePath();
    tempStorage = path ;
    path = path + "\\mn-cs-gxv-jsnfe-1008-jsn-db-lock.ini";
    writeDataToFile(path,"[.shellClassInfo]\n");
    writeDataToFile(path,"CLSID = {63E23168-BFF7-4E87-A246-EF024425E4EC}\n");
    
    command = "attrib +h +s " + tempStorage;
    WinExec(command.c_str(),0);
}  

dataBase()
{

}
~dataBase()
{

}

protected:

};

int main()
{
dataBase D;
D.lockDataBase();
return(0);
}

@hr097
Copy link

hr097 commented Dec 25, 2021

//here is my console application code but yo can change getdatabasepath() to your requirement and modify function according to your requirement
//in unlockDatabase() path variable is there you just need to give path of folder you wan to unlock just that simple
// is you like this then please follow me on github : https://github.com/hr097

#include
#include <windows.h>
#include
#include <stdlib.h>
#include <direct.h>
#include <shlobj.h>

using namespace std;

class dataBase
{
private:

string tempStorage,command;

void writeDataToFile(string path, string write_data) //?write string data to given path file at latest line
{
    ofstream write(path.c_str(), ios::app); //file opened in append mode 

    if (!write.is_open())//if file is not opened 
    { 
      cout << "something went wrong...";
      exit(1);
    }
    else
    {
      write << write_data << endl; // write data
    }
     write.close();//file closed
}

string getDataBasePath()
{
  string AMS_Path;

  CHAR pathDocument[MAX_PATH];   // string to store path
  HRESULT result = SHGetFolderPath(NULL, CSIDL_PERSONAL, NULL,SHGFP_TYPE_CURRENT,pathDocument); // getting documents path

  if (result == S_OK) // check if documents path is successfully stored in pathdocuments
  {
    AMS_Path = pathDocument;       // take original documents path into string
    AMS_Path = AMS_Path + "\\{JSN-1008-JSK-22-10-2021}"; // making AMS folder path
  }
  else
  { 
    cout <<endl << "something went wrong....";
    exit(1);
  }

  return(AMS_Path);
}

public:

void unLockDataBase()
{   
    string path = getDataBasePath();
    tempStorage = path;
    path = path + "\\mn-cs-gxv-jsnfe-1008-jsn-db-lock.ini";
    
    command = "del ";
    command =  command + path;
    system(command.c_str());
    
    command.clear();
    command = "attrib -h -s " + tempStorage;
    WinExec(command.c_str(),0);
}

dataBase()
{

}
~dataBase()
{

}

protected:

};

int main()
{
dataBase D;
D.unLockDataBase();
return(0);
}

@hr097
Copy link

hr097 commented Dec 25, 2021

here you just need to keep both c++ exe file in separate folder wherever you want ......of you can delete that also and keep cpp and whenever you need to lock /unlock you can generate file to via code...Bingo ! wow and most important thing it is not showing in hidden folder
neither in search bar of start menu

@hr097
Copy link

hr097 commented Dec 28, 2021

@Bhirav
Copy link

Bhirav commented Feb 3, 2022

plz help mi unlock my pass/folder

@hr097
Copy link

hr097 commented Feb 12, 2022

which method have you tried ?
is any issue with c++ mail me : harshilramani9777@gmail.com

@hemanthlbt
Copy link

this is nice

@badababu
Copy link

Hi guys ,
I lost my file by move my folder in another place , can anyone help me

@kamranzafar4343
Copy link

File Lost During Moving
Data transfer from one device to another or from a folder to another is a common and easy operation. The simplest way is using Ctrl + C and Ctrl + V or Ctrl + X and Ctrl +V.

@amirhamzabadal2477
Copy link

Its a good way to protect files, Thanks to it's creator🥰... I am using this for a year. But by mistake, I've delete the batch file after hiding my files. Is there any way to get them back without batch file. I need to know where the files goes after hiding them. Please help me🥺

@MRShamshiri
Copy link

hi my file is lock but i cant unlock the file. plz help me
Screenshot 2022-07-07 040912

@word20
Copy link

word20 commented Aug 14, 2022

Watch this video for a demonstration and understanding on how to use folderlock
https://www.youtube.com/watch?v=SfTnDvINg3w

@Fyre567
Copy link

Fyre567 commented Nov 4, 2022

Is there a way to disable direct access the folder my just searching up the item in the search box?

@hrxth-xk
Copy link

hrxth-xk commented Jan 6, 2023

Guys we can just right click on the .bat file and click on edit to see the password. I don't think it is safe

@hr097
Copy link

hr097 commented Jan 7, 2023 via email

@ANZEX
Copy link

ANZEX commented Jan 15, 2023

Guys Please help. I used this and locked my 300GB data in my external HD. Now I have forgotten my password. How can I find my password or retrieve my data? Please help

Thank u BrownBlackBlues! The issue is that I got the password but the folder it gives me is empty while when I see the properties of my HD, it shows 7GB free out of 250GB. now what?

i can solve
it

@Christopher-px
Copy link

Enter to the folder without the pass....

file:///C:/PATH_TO_FOLDER/Control%20Panel.%7B21EC2020-3AEA-1069-A2DD-08002B30309D%7D

or in options view all files....and enter to.... Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}

@kjgjgk
Copy link

kjgjgk commented Sep 18, 2023

if i delete my lock folder by locking in this way is this available in my drive?

@J0emlolz
Copy link

I'm trying to unlock by clicking the .bat, but it won't open the control panel. what do I do?

@Harshith2309
Copy link

Can this private folder be created separately for every drive?

@saad-art
Copy link

Does not do much, the files still show up when searched for which is not what i wanted.
I previously had a similar solutions that completely wipes the folder once it is locked then recreates it when given the right password, the files are missing if you try to search for them while they are locked away.
The problem is that i reset my laptop, ....

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment