2013-02-14 146 views
0

我是Java新手,正在开发一个项目来提高我的技能并需要一些帮助。Java:将文件(使用路径)复制到目录并重命名同名文件

我有一个文件,我们称它为tools.extension,它将不得不去到一个已经有tools.extension文件的目录。我希望我的代码检查tools.extension是否存在,如果有,请将其重命名为tools(currentdate).extension

所以,我想这个测试逻辑:

Scanner myS = new Scanner(System.in); 
     Path path = Paths.get(myS.nextLine()); 
     Path file = Files.createFile(path); 
     Path path1 = Paths.get(myS.nextLine()); 
     Path file1 = Files.createFile(path1); 

     if (file.getFileName() == file1.getFileName()) 

     { 
      System.out.println("file already exists"); 
     } 

     else 
     { 
      System.out.println("File doesn't already exist"); 
     } 

     Files.delete(file); 
     Files.delete(file1); 

但是,当然,后来我意识到,将是一个异常的地方,但我只是想试试这个来检查我的逻辑。

,我总是得到file doesn't already exist

甚至没有,如果我创建在不同的目录2个text.txt文件。它不会看到它们具有相同的名称,即使当我打印getFileName()时,它们都是!

有人可以给我一些建议或指向我的教程,可以帮助我吗?

非常感谢你!

编辑:

感谢这么多的提醒我.equals的,这是工作!

我只是有另一个问题,我该如何去重命名文件或file1?他们是我不知道的道路。

我应该使用toFile()方法,然后使用renameTo()吗?

回答

0

我不知道你有什么背后Files.createFile(path);但一些重要的事情有关File API

File.exists()必须用来检查file存在于文件系统。

File.delete()返回一个布尔值,告诉你呼叫是否成功。

您可以创建一个File对象,但并不意味着该文件将在文件系统上创建。

要在文件系统上创建需要调用的文件:File.createNewFile()。再次,这个方法返回一个布尔值,告诉你创建是否成功。

File.renameTo(anotherFile)可用于重命名文件。再一次,它回顾了一个布尔值,告诉你是重命名是成功还是不成功。

玩文件时常见的错误是忘记检查所有这些文件系统操作的结果......所以不要忘记它。

1

if (file.getFileName() == file1.getFileName())是错误的。

您应该使用.equals(...)方法比较字符串。

0

只使用

if(file.getFileName().equals(file1.getFileName())){ 
    //file exist 
    } 
相关问题