いくつかのディレクトリとファイルを作成する必要があり、それらすべてに権限0600が必要です。NetBeans
デバッグから実行する場合:ディレクトリを作成した後、そこにいくつかのファイルを保存しようとするとIOException
、ディレクトリとファイルの両方が作成されているときに「アクセスが拒否されました」というメッセージが表示されます。同じアプリケーションで同時に同じユーザーであるため、0600(所有者の読み取り/書き込み)が機能するはずです。
また、Jarファイルを実行すると、chmodがまったく機能しなくなります。私のコードは次のとおりです。
if(!Dest.exists()){
boolean res=dirs.mkdirs();
if(res){
Runtime.getRuntime().exec("chmod -R 600 '"+dirs.getAbsolutePath()+"'");
}
}
File Destination=new File(Dest, source.getName());
documentManager.copyFile(source, Destination);
copyFileは次のとおりです。
public static void copyFile(File sourceFile, File destFile) throws FileNotFoundException,IOException {
if(!destFile.exists()) {
destFile.createNewFile();
}
FileChannel source = null;
FileChannel destination = null;
try {
source = new FileInputStream(sourceFile).getChannel();
destination = new FileOutputStream(destFile).getChannel();
destination.transferFrom(source, 0, source.size());
}
finally {
if(source != null) {
source.close();
}
if(destination != null) {
Runtime.getRuntime().exec("chmod 600 '"+destFile.getAbsolutePath()+"'");
destination.close();
}
}
}
どうしたの?
ありがとう