在java中重命名现有文件

时间:2016-03-02 19:32:25

标签: java file

我正在编写基本的记事本程序。该程序包含重命名方法。如果用户写"重命名"到扫描仪。程序正在根据重命名堆栈等输入更改注释名称。但是如果用户输入两个新的notename。程序将错误,如#34;重命名的注释名称无效。它包含' '。输入一个单词"。如果新注释名称与现有文件的名称相同。程序将打印"文件已经存在"。我该怎么办?

-rename stack
输入新的备注名称?
堆叠在 用于重命名的注释名称无效。它包含' '。输入一个字
-rename stack
输入新的备注名称?

文件已存在

enter code here
           else if (noteNameSplited[0].equals("rename")) {

            File file = new File(noteNameSplited[1]+".ncat");

            if(!file.exists()) {
                System.out.println("File does not exist !");
            }
            else {
                System.out.println("Enter the new note name");
                String data=scan.nextLine();
                File file2 = new File(data+".ncat");
                file.renameTo(file2);
            }
        }

2 个答案:

答案 0 :(得分:0)

您可以尝试以下操作:

public boolean renameTo(File dest) {
    SecurityManager security = System.getSecurityManager();
    if (security != null) {
        security.checkWrite(path);
        security.checkWrite(dest.path);
    }
    return fs.rename(this, dest);
}

此处的完整代码:http://code.openhub.net/file?fid=wJA8QKQ1K6QdkiVbFZrm3TFdLXE&cid=v2q_WSdZ-fw&s=Renaming%20existing%20file%20in%20java&fp=275914&mp,=1&ml=1&me=1&md=1&projSelected=true#L1236

答案 1 :(得分:0)

这可能会对您有所帮助:

https://github.com/openstreetmap/osmosis/blob/master/osmosis-core/src/main/java/org/openstreetmap/osmosis/core/util/AtomicFileCreator.java#L50

    if (!tmpFile.exists()) {
        throw new OsmosisRuntimeException("Can't rename non-existent file " + tmpFile + ".");
    }

    // Delete the existing file if it exists.
    if (file.exists()) {
        if (!file.delete()) {
            throw new OsmosisRuntimeException("Unable to delete file " + file + ".");
        }
    }

    // Rename the new file to the existing file.
    if (!tmpFile.renameTo(file)) {
        throw new OsmosisRuntimeException(
                "Unable to rename file " + tmpFile + " to " + file + ".");
    }