【问题标题】:Renamed the same file using java [duplicate]使用java重命名相同的文件[重复]
【发布时间】:2014-01-20 19:17:58
【问题描述】:

我想将同一目录中的文件140103122005+0530_Penguins.jpg 重命名为Penguins.jpg

我试过renameTo() 但它不起作用,它需要目标文件,我没有目标文件。

任何人都可以告诉我如何使用 Java 重命名同一目录中的同一文件。

【问题讨论】:

标签: java file file-io


【解决方案1】:

请仔细阅读renameTo java 文档。它需要 abstract destination File 对象(这并不一定意味着该文件必须存在于您的系统上)。它只是关于系统上目标文件的 renameTo() 方法的一个指示符。 File documentation 明确表示文件对象是文件或目录的抽象表示(实际文件可能存在也可能不存在)。

这里有一个java代码sn-p供参考:

// This file to be renamed (must exist on your system)
File source = new File("c:/140103122005+0530_Penguins.jpg");

if(source.exists()) {
    // Abstract file path (does not exist)
    File destination = new File ("c:/Penguins.jpg");

    // rename the source file
    source.renameTo(destination);
}

【讨论】:

    【解决方案2】:

    也许你做错了什么。应该是

    boolean success = new File("1").renameTo(new File("2"));
    

    请注意,根据 javadoc,它可能无法将文件从一个文件系统移动到另一个文件系统,并且如果具有目标抽象路径名的文件已经存在,它可能不会成功。 renameTo 是平台相关的。

    从 Java 7 开始,建议使用独立于平台的 java.nio.file.Files.move 方法

    【讨论】:

      【解决方案3】:

      还可以通过File.renameTo方法的返回参数检查重命名是否成功。文件重命名操作依赖于平台,可能不会一直成功。

      【讨论】:

        【解决方案4】:

        这是一个例子

        import java.io.*;
        public class file {
        
            /**
             * @param args
             */
            public static void main(String[] args) {
                // TODO Auto-generated method stub
                File f=new File("140103122005+0530_Penguins.jpg");
                f.renameTo(new File("Penguins.jpg"));
        
            }
        
        }
        

        remaneTo 返回boolean 所以如果你想检查文件是否被重命名然后做System.out.println(f.renameTo(new File("Penguins.jpg")); 如果你得到 true 然后文件重命名

        【讨论】:

          猜你喜欢
          • 2017-04-10
          • 1970-01-01
          • 2016-05-19
          • 2014-08-03
          • 2010-11-12
          • 1970-01-01
          • 2011-01-27
          • 2020-07-02
          • 1970-01-01
          相关资源
          最近更新 更多