0

Test1/gotcha/Test3 のようなフォルダー構造を作成しようとしています。以下のコードは機能しません。

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 フォルダーは引き続き開くことができます。これを修正する方法について何か提案はありますか?

4

2 に答える 2

1

それはできません。

回避策の 1 つは、そのフォルダー内のファイルのファイル拡張子をランダムな名前に変更することです。これにより、ユーザーがファイルを開こうとしても、それを実行するアプリケーションを見つけることができなくなります。

ここに画像の説明を入力

テキストエディタで開くことができるとわかっていても、暗号化してしまいます。だから読めなくなる。

ここに画像の説明を入力

これは単なる鍵置換暗号でした。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;
    }
}
于 2015-06-16T10:42:28.040 に答える
1

It is not possible to make folders non-readable in Windows, that is why setReadable() in windows does not work.

于 2015-06-16T10:13:27.447 に答える