0
  • ファイル/フォルダを削除する前に開いているかどうかを確認する方法.
  • プログラムで削除しています..削除する前に、開いているかどうかを確認する必要があります

  • 私はこのようなものが欲しい、

                if(file/folder is open){
                   //do not delete it
                }else{
                   //delete it
                 }
    

    以下の 2 つのコードのセットを試しましたが、何も機能しません

         File scrptFile=new File(dirFile);
         boolean isFileUnlocked = false;
    try {
        org.apache.commons.io.FileUtils.touch(scrptFile);
        isFileUnlocked = true;
    } catch (IOException e) {
        isFileUnlocked = false;
    }
    
    if(isFileUnlocked){
        // Do stuff you need to do with a file that is NOT locked.
        System.out.println("file is not locked");
    } else {
        // Do stuff you need to do with a file that IS locked
        System.out.println("file is locked");
    }
    
    
           File file = new File(dirFile);
    FileChannel channel = new RandomAccessFile(file, "rw").getChannel();
    // Get an exclusive lock on the whole file
    FileLock lock = channel.lock();
    try {
        lock = channel.tryLock();
        // Ok. You get the lock
        System.out.println("Ok. You get the lock");
    } catch (OverlappingFileLockException e) {
        // File is open by someone else
        System.out.println("File is open by someone else");
    } finally {
        lock.release();
    }
    
4

1 に答える 1

0

Apache commons io api を利用できます。

  boolean flagFileNotInUse = false;
try {
    org.apache.commons.io.FileUtils.touch(yourFile);
    flagFileNotInUse = true;
} catch (IOException e) {
    flagFileNotInUse = false;
}

// 次に flagFileNotInUse の値をチェックし、

  flagFileNotInUse = true, means file not in use
  flagFileNotInUse = false, means file in use
于 2013-11-05T07:41:46.350 に答える