特定のバイナリ ファイルに書き込みアクセス権があるかどうかを確認する必要があります。ファイル クラス API にはバグがあり、JDK7 で修正されましたが、アップグレードすることはできません。
バグへのリンクは次のとおりです: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6203387
FileOutputStream を開くと、バイナリ ファイルが破損し、エクスプローラーでサイズがゼロと表示され、起動できません。これがコードスニペットです。
OS: Win7
出力ストリームを開くだけで (何も書き込まずに) バイナリ ファイルが破損する理由を理解してください。この問題の回避策はありますか?
コード スニペットは次のとおりです。
private boolean hasWriteAccess(File file) {
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file);
} catch (Exception e) {
e.printStackTrace();
if(fos != null) {
try {
fos.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
return false;
}
return true;
}