我正在尝试将文件夹结构创建为Test1 / gotcha / Test3 我想让Test1不可靠。以下代码不起作用:
new File("D:\\Test1\\gotcha\\Test3").mkdirs();
PrintWriter writer= new PrintWriter("D:\\Test1\\gotcha\\Test3\\testing.txt");
writer.write("Hello");
writer.close();
File f1= new File("D:\\Test1");
f1.setReadable(false,false);
f1.setExecutable(false,false);
我仍然可以打开Test1文件夹。关于我如何解决这个问题的任何建议?
答案 0 :(得分:0)
在Windows中无法使文件夹不可读,这就是Windows中的Select-Object -ExpandProperty
不起作用的原因。
答案 1 :(得分:0)
无法做到。
一种方法是将该文件夹中文件的文件扩展名更改为随机名称,这样即使用户尝试打开它,也无法找到应用程序来执行此操作。
即使他发现可以使用文本编辑器打开它,我们也会加密它。所以它变得不可读。
这只是一个密钥替换密码。您可以使用更复杂的算法(如SHA或AES)来使其无法中断。
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class Demo
{
public static void main( String[] args )throws IOException
{
File file = new File("C://temp//Hello1.sddf");// a random extension.
// creates the file
file.createNewFile();
// creates a FileWriter Object
FileWriter writer = new FileWriter(file);
String data = "Hello world!";//hello world is the data.
// Writes the content to the file
writer.write(encrypt(data));
writer.flush();
writer.close();
}
private static String encrypt(String data) {// I used a simple cipher I advise to use any other encryption technique.
// TODO Auto-generated method stub
String op = "";
for(int i = 0; i < data.length(); i++)
op += (char)(data.charAt(i) - 5);
return op;
}
}