[英]How to test rename in Java
假設我將文件A
重命名為文件B
現在我要測試一下。 我可以測試B
存在而A
不存在。 但是,我需要確保B
實際上已重命名為 A
如何在Java中為Linux和Windows使用它。
您可以在重命名前后比較文件的MD5校驗和。
您為什么不僅僅信任File.renameTo(File)返回的布爾值,該布爾值指示重命名是否可行 ?
import java.io.File;
public class Main {
public static void main(String[] args) {
File oldName = new File("C:/java1.txt");
File newName = new File("C:/java2.txt");
if(oldName.renameTo(newName)) {
System.out.println("renamed");
} else {
System.out.println("Error");
}
}
}
現在進行確認,您可以將文件內容以字符串形式存儲在兩個文件中,例如
String contentOld = new Scanner(new File("java1.txt")).useDelimiter("\\Z").next();
String contentNew = new Scanner(new File("java2.txt")).useDelimiter("\\Z").next();
現在對兩個字符串進行求和,您將得到結果
contentOld.equals(contentNew)
如果兩者內容相同,則返回true
很簡單
if(B.exists()) throw new java.io.IOException("file already exists");
boolean success = A.renameTo(B);
if (success) {
// File is successfully renamed.
}
但是這種方法依賴於平台,就像API提到的那樣: http : //docs.oracle.com/javase/7/docs/api/java/io/File.html#renameTo%28java.io.File%29
相反,您可以使用
Files.move()
以平台無關的方式,這將引發相關異常,以供您檢查文件是否確實被重命名。 如果該方法將路徑返回到目標文件,則它已正確重命名,否則將引發異常。 您可以參考鏈接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.