0

重複の可能性:
プログラムでファイルのアクセス許可を変更するにはどうすればよいですか?

一部のディレクトリに読み取り権限を設定したい。java.io.Fileのlist()メソッドを使用したいのですが、たとえばこれを印刷すると、次のようになります。

System.out.println(fileDir.list());  

ドキュメントによると、「null」が発生します。これは、ファイルが配置されているディレクトリへのアクセス許可がないことを意味している可能性があります。

4

1 に答える 1

1

JNAを使用してネイティブCライブラリを呼び出すことができます(JNIを使​​用する代わりに)。

JNAの唯一の問題は、JNAよりも処理時間が長いことです。そのため、多数のファイル/ディレクトリを変更しようとすると実用的ではなくなります。

コードを編集する

import com.sun.jna.Library;
import com.sun.jna.Native;

public class ChmodTest {
    private static LinkedOSLibrary linkedLibrary = 
        (LinkedOSLibrary ) Native.loadLibrary("c", LinkedOSLibrary.class);

    public static void main(String[] args) {
        linkedLibrary.chmod("/path/to/file", 0755);
    }
}

interface LinkedOSLibrary extends Library {
    public int chmod(String path, int mode);
}

ソース

于 2012-11-15T20:13:16.370 に答える