1

ファイルが少ないディレクトリの内容を削除しようとしていますが、削除できません。メソッドを試してみると、が.delete()返されますfalse.canWrite().canRead()メソッドはtrueコードに対して返されます。

システム内の私のファイルパスは次のとおりです。

E:\ PROJECT01022012 \ .metadata \ .plugins \ org.eclipse.wst.server.core \ tmp4 \ wtpwebapps \ realmap \ PHOTO \ VFIN5CT5651842012 \ Inspirational-GravityHighRes.jpg

私はこれこれを試しましたが、運がありませんでした。

public static boolean removeDirectory(File directory){

 if (directory.isDirectory())
    {
     File[] fls=directory.listFiles();

     for (int i = 0; i < fls.length; i++) {
          fls[i].delete();

     }
     } 

}
4

2 に答える 2

2

ファイルが別の場所で開かれている場合、そのファイルを削除することはできません。たとえば、閉じられていないFileInputStreamorによる Java 内FileOutputStream、またはエンドユーザーの画像ビューアー/エディターなどの Java のコンテキスト外。

Java 側では、ファイルをどこにも開いていないことを確認してください。FileInputStream使用後、FileOutputStreamそのファイルのすべてがブロックclose()内にあることを確認してください。finallyエンドユーザー自身が画像ビューア/エディタで画像を開いていないことを確認してください。

于 2012-05-18T12:45:09.787 に答える
0

ディレクトリ内のファイルは読み取り専用ですか?はいの場合は、setReadOnly(false) を試すことができますが、うまくいかないことを覚えています。実際には、ファイルから読み取り専用フラグをリセットしません。まあ、いくつかの回避策は、コマンドを使用して Runtime.exec を呼び出して、OS のファイルを削除することです。

// For windows - option /F to force delete read-only files:
Runtime.getRuntime().exec("DEL /F E:\PROJECT01022012\.metadata\.plugins" +
    "\org.eclipse.wst.server.core\tmp4\wtpwebapps\realmap\PHOTO\VFIN5CT5651842012" +
    "\Inspirational-GravityHighRes.jpg");
于 2012-05-18T12:48:04.240 に答える