8

ユーザーが自分の Java プログラムを使用してのみロックを解除できるように、ファイルをロックするにはどうすればよいですか?

import java.nio.channels.*;
import java.io.*;

public class filelock {

  public static void main(String[] args) {

    FileLock lock = null;
    FileChannel fchannel = null;

    try {
      File file = new File("c:\\Users\\green\\Desktop\\lock.txt");

      fchannel = new RandomAccessFile(file, "rw").getChannel();

      lock = fchannel.lock();
    } catch (Exception e) {
    }
  }
}

これは私のサンプルコードです。それは私が欲しいものを私に与えません。Java プログラムを使用してロックを解除するまで、ファイルの読み取りまたは書き込みアクセスを 1 回拒否するようにします。

4

2 に答える 2

16

ロックしたい場所でこれを行うことができます:

File f1 = new File(Your file path);
f1.setExecutable(false);
f1.setWritable(false);
f1.setReadable(false);

ロックを解除するには、次のようにします。

File f1 = new File(Your file path);
f1.setExecutable(true);
f1.setWritable(true);
f1.setReadable(true);

申請する前に

ファイルのアクセス許可が許可されているかどうかを確認します。

file.canExecute(); – return true, file is executable; false is not.
file.canWrite(); – return true, file is writable; false is not.
file.canRead(); – return true, file is readable; false is not.

Unix システムの場合、次のコードを挿入する必要があります。

Runtime.getRuntime().exec("chmod 777 file");
于 2013-07-08T07:55:16.380 に答える