如何在java中实现文件夹锁

时间:2012-03-07 09:43:38

标签: java file-io nio file-locking

我想锁定特定文件夹,我有代码,但发现“java.io.FileNotFoundException :(访问被拒绝)”错误

public class Folder_Lock {

    public static void main(String[] args) {

    FileLock lock = null;
    FileChannel channel = null;
        try {
            // Get a file channel for the file

            File file = new File("C:\\Users\\kaizen\\Desktop\\mani1");

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

            // Use the file channel to create a lock on the file.
            // This method blocks until it can retrieve the lock.
            lock = channel.lock();

            // Try acquiring the lock without blocking. This method returns
            // null or throws an exception if the file is already locked.
            try {

                lock = channel.tryLock();

            } catch (OverlappingFileLockException e) {

                // File is already locked in this thread or virtual machine
            }

            // Release the lock


        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (lock!=null) try { lock.release(); } catch (IOException e) { }
            // Close the file
            if (channel!=null) try { channel.close(); } catch (IOException e) { }
        }

    }
}

任何人都可以解决问题

2 个答案:

答案 0 :(得分:2)

您需要添加异常处理程序来处理异常。在

File file = new File("C:\\Users\\kaizen\\Desktop\\mani1.addExtension");

这将解决您的问题。

答案 1 :(得分:0)

尝试通过admin或First Run IDE运行您的文件夹作为管理员并运行该文件 因为你在C:/系统需要访问权限