我正在製作一個監控和備份目錄的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();
}
但是,如果有新的版本,我不得不刪除舊文件,並更換新的。 但文件鎖不允許我刪除該文件。
我應該解鎖並刪除它寫信,相信用戶不會寫入文件?或者有沒有其他的方式來做到這一點?
這無論如何都不會工作。 FileLocks不會阻止用戶更改或刪除文件。它們只會阻止其他程序鎖定文件。 – EJP