So, I understand that files cannot be created or deleted without administrator privileges in the C:\ drive. My question is like this : If a directory in the C:\ drive is entered... say Program Files, then shouldn't file writing be possible there?
I have created a program that deletes empty directories in an entire folder (i.e includes subfolders)
I get that C:\ drive requires permissions, but once my program finds Program Files to be a "not-empty" directory, it enters Program Files but is still denied write permissions. I know this because I made sure the program lists every directory it spots in the given path. So, EVERY folder present in the C:\ drive is printed. No folders are deleted though.
Whereas when I set the path directly to C:\Program Files it performs the task of deleting empty directories as per the code.
Why is this so?
I wrote a batch file which I ran as the administrator. As you might have guessed, no luck. I tried running it through cmd in admin mode, but nothing again. Is there a way I can change the .class file of my code to run with admin privileges? Or is there a way to run it in cmd with admin privileges? Say
java emptyFoldersRemover -runAsAdmin
Something like that?
Or do I have to make an executable file?
EDIT
I stress on this point again. Isn't there a way to run java.exe with administrator permissions in cmd so that the program is treated with administrator privileges?
String absolutePath=p;
try {
path=new File(absolutePath);
File listOfFolders[] = path.listFiles();
for(int i=0;i<listOfFolders.length;i++)
if(listOfFolders[i].isDirectory())
System.out.println(listOfFolders[i]);
for (int i = 0; i < listOfFolders.length; i++)
{
if (listOfFolders[i].isDirectory())
{
if(listOfFolders[i].list().length>0) {
/* if(listOfFolders[i].getName().equalsIgnoreCase("Program Files"))
{
for(int j=0;j<listOfFolders[i].list().length;j++)
{
System.out.println(listOfFolders[i].list());
}
}*/
run(listOfFolders[i].getAbsolutePath());
}
else
{
noOfFolders++;
System.out.println(noOfFolders);
listOfFolders[i].delete();
}
}
}
}
catch(Exception e)
{
//e.printStackTrace();
}
return(noOfFolders);