java file rename 失败_java重命名文件造成文件不可读写
我想使用java代碼對nginx日志文件進行拆分,但是我發現代碼執行之后,拆分出來的日志文件沒有讀寫權限,查看文件屬性,顯示的很詭異:
點擊高級按鈕,顯示你沒有權限查看或者編輯這個對象的權限設置:
反正造成的后果是我連刪除這個文件都不能成功了。
下面是我的java代碼:
import java.io.File;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class FileTest {
private static final Logger LOGGER = LoggerFactory
.getLogger(FileTest.class);
public static void main(String[] args) {
File logFile = new File("E:\\mywamp\\nginx-1.6.2\\logs\\access.log");
if (logFile != null && logFile.exists()) {// file exist
File newFile = new File("E:\\mywamp\\nginx-1.6.2\\logs\\access.log.read");
newFile.delete();
boolean rename = logFile.renameTo(newFile);//
if (!rename) {
LOGGER.warn("重命名失敗");
}
newFile.delete();
} else {
LOGGER.warn("file not exist");
}
}
}
不過我發現重啟電腦之后,文件access.log.read就會自動刪除。
我用的java版本是1.6.25(換成最新的1.8.0_31 x64版本也是一樣),操作系統是win8.1,最后需要聲明一下,如果不啟動nginx,僅僅執行上述代碼,是不會出現文件讀寫權限丟失的問題的。
補充一下,我在重命名文件之后做了一遍nginx重啟操作,即:
if (!rename) {
LOGGER.warn("重命名失敗");
} else {
NginxCmd.reload();//這里封裝了nginx的重啟命令
}
然后access.log.read能被正常刪除了,雖然問題解決了,但我還是不懂其中的原理。
總結
以上是生活随笔為你收集整理的java file rename 失败_java重命名文件造成文件不可读写的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 胃胀气打嗝怎么办
- 下一篇: 子宫纳氏囊肿是怎么回事