小编use*_*768的帖子

文件锁定和删除

我正在java中创建一个监视和备份目录的程序.我不得不将修改后的文件上传到存储库或下载(如果有新版本的话).为了做到这一点,我必须锁定文件,以便用户无法更改内容或删除它.目前我正在使用此代码来锁定文件:

        file = new RandomAccessFile("C:\\Temp\\report.txt", "rw");

        FileChannel fileChannel = file.getChannel();
        fileLock = fileChannel.tryLock();
        if (fileLock != null) {
            System.out.println("File is locked");

            try{

            //Do what i need    

            }catch (Exception e){//Catch exception if any
                System.err.println("Error: " + e.getMessage());
            }
        }
        else{
            System.out.println("Failed");
        }
    } catch (FileNotFoundException e) {
        System.out.println("Failed");
    }finally{
        if (fileLock != null){
            fileLock.release();
        }
Run Code Online (Sandbox Code Playgroud)

但是,如果有新版本,我必须删除旧文件并替换为新文件.但文件锁不允许我删除该文件.

我应该解锁并删除它写信,相信用户不会写入文件?或者还有其他方法吗?

java locking file delete-file

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

delete-file ×1

file ×1

java ×1

locking ×1