我正在编写基本的记事本程序。该程序包含重命名方法。如果用户写"重命名"到扫描仪。程序正在根据重命名堆栈等输入更改注释名称。但是如果用户输入两个新的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);
}
}
答案 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);
}
答案 1 :(得分:0)
这可能会对您有所帮助:
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 + ".");
}