方法File.renameTo

时间:2013-12-02 09:50:53

标签: java file

我正在尝试重命名文件,现在问题是我可以单独在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;
}

0 个答案:

没有答案