我正在尝试重命名文件,现在问题是我可以单独在JUnit中重命名该文件,但是当我将操作放在for循环中时,它不起作用。
public String createFile(){
//generate a file
//return a invariable filepath
}
for(int i=0;i<someconditions;i++){
File f1 = new File(createFile());
File f2 = new File(//random filename);
f1.renameTo(f2); //always return false
}
但如果我只重命名一个文件,它就可以了:
File f1 = new File(path);
File f2 = new File(newPath);
f1.renameTo(f2);
现在我找到了错误的地方,它在这段代码中没有用,但我不知道为什么:
public void renametest(){
String path = "E:\\wk7\\Export\\__temp__dir\\temp_name.xml";
String type = "123";
tttt(path, type);
}
public String tttt(String path,String type){
String head = "MASS";
String absSec = ExUtils.getAbsSec();
File file = new File(path);
Long crc = ExUtils.geCrc32(file);
String name = head+"_"+absSec+"_"+type+"_"+crc+".xml";
String newPath = path.substring(0,path.lastIndexOf("\\"))+"\\"+name;
File newFile = new File(newPath);
Boolean b = file.renameTo(newFile);
if(b){
//do something
return newPath;
}else{
//do something
}
return null;
}