0 0

java.io.File.renameTo会删除源文件?5

现在我有一个操作,需要调用java.io.File.renameTo这个方法重命名文件。实现代码大致如下,
public void reNameFile() {
		File file = new File(
				"C:\\folderA\\sample.zip");
		File newFile = new File("C:\\folderB\\sample.zip");
		boolean reNameOK = file.renameTo(newFile);
boolean deleteOK = file.delete();
		if (reNameOK) {
			System.out.println("rename ok");
		}
if((deleteOK){
System.out.println("delete ok");
}
	}

我发现在调用renameTo之后,在把sample.zip放到folderB中的同时,folderA中的sample.zip也被删除了,这样一来当调用delete的时候,返回值deleteOK就是false。这是我在windows下测试的结果,不知道在linux下是怎么样的。如果renameTo在linux下也能删除源文件,是不是就不需要调用delete了?
2012年7月27日 10:27

2个答案 按时间排序 按投票排序

0 0

采纳的答案

这个方法实际在linux下有可能会失败。不能保证不同平台下一样好用!~~不建议使用。由于安全性及系统盘符所使用的文件格式不一样导制失败(NTFS、FAT32)!
commons-io包里面的

FileUtils.copyFile(File,File)


自己写个copy的方法也是个不错的选择!

2012年7月27日 10:49
0 0

API文档的解释如下:

public   boolean   renameTo(File   dest)重新命名此抽象路径名表示的文件。  
此方法行为的许多方面都是与平台有关的:重命名操作无法将一个文件从一个文件系统移动到另一个文件系统,该操作可能不是原子的,如果已经存在具有目标抽象路径名的文件,则该操作可能无法获得成功。应该始终检查返回值,确保重命名操作成功。  


参数:
dest   -   指定文件的新抽象路径名  
返回:
当且仅当重命名成功时,返回   true;否则返回   false  
抛出:  
SecurityException   -   如果存在安全管理器,且其   SecurityManager.checkWrite(java.lang.String)   方法拒绝对原来的和新的路径名进行写入访问  
NullPointerException   -   如果参数   dest   为   null

File   src   =   new   File( "C:/a.txt ");
File   dst   =   new   File( "C:/b.txt ");
src.renameTo(dst);这样就可以成功啦

2012年7月27日 10:35

相关推荐

    java的io操作源代码

    - 文件移动/重命名:通过File对象的renameTo()方法或Files.move(),后者在无法移动时支持替换目标文件。 理解并熟练运用这些基本的IO操作对于开发任何Java应用都是至关重要的,无论是在命令行工具、桌面应用还是...

    java临时文件重命名-Java程序重命名文件或目录.pdf

    Java提供了`java.io.File`类,它包含了多种方法来处理文件和目录,其中之一就是`renameTo()`方法,用于重命名文件或目录。在本文中,我们将深入探讨`renameTo()`方法的工作原理、使用示例以及注意事项。 `renameTo...

    Java_IO.rar_IO流 java_java io流

    5. **移动和重命名文件**:File类的renameTo()方法用于重命名或移动文件。然而,这并不是跨文件系统的移动,只适用于同一文件系统内的操作。 6. **复制文件**:可以使用FileInputStream和FileOutputStream结合来...

    java 移动指定目录下的文件

    要移动文件,我们通常需要使用`File.renameTo()`方法。这个方法尝试将文件从一个位置移动到另一个位置。例如: ```java import java.io.File; public class FileDemo_06 { public static void main(String[] args...

    Java 实例 - 文件重命名源代码-详细教程.zip

    `renameTo()`方法用于重命名文件,其原型为`boolean renameTo(File dest)`。它接收一个`File`对象作为参数,表示新文件名。如果重命名成功,方法返回`true`;反之,返回`false`。示例如下: ```java boolean ...

    java开发,图片重命名

    在重命名图片文件时,我们主要用到`File`类的`renameTo()`方法。这个方法接收一个`File`对象作为参数,表示新的文件名或路径,如果重命名成功,返回`true`,否则返回`false`。以下是一个简单的图片重命名的示例: `...

    经典java拷贝 牛安心 北京艺术玻璃

    Java中重命名文件可以使用`File`类的`renameTo()`方法。这个方法将尝试把当前文件或目录重命名为新的名字。需要注意的是,如果新名字已经存在,或者由于权限问题,重命名可能不会成功。以下是一个简单的重命名示例...

    File-Operation-by-java.rar_java 文件复制_operation

    文件移动在Java中通常通过重命名实现,可以调用`File`类的`renameTo()`方法。但是,如果源文件和目标文件位于不同的文件系统下,这可能无法工作。在这种情况下,需要先复制文件,然后删除源文件,模拟移动操作。 3...

    java操作本地文件

    boolean renamed = oldFile.renameTo(newFile); if (renamed) { System.out.println("文件已重命名:" + newFile.getAbsolutePath()); } else { System.out.println("重命名失败"); } } } ``` 对于更复杂的...

    TextFile:一个用于处理简单文本文件的java实用程序类。 实用程序包括读写方法,以及清除,追加,复制粘贴和其他方法。 扩展java.io.File

    这个类扩展了Java内置的`java.io.File`,这意味着它不仅包含了`File`类的所有功能,还添加了一些额外的方法,使得文本文件的处理更加便捷。下面将详细介绍`TextFile`类的主要特性和功能。 1. **读取方法**: - `...

    Java 文件移动代码

    在Java编程语言中,文件移动操作是常见的文件...总结一下,Java中的文件移动主要依赖于`File`类的`renameTo()`方法和自定义的复制/删除操作。理解这些基本操作对于进行任何涉及文件系统交互的Java项目都是至关重要的。

    java_io_文件操作_复制_删除_移动_下载

    2. **调用`renameTo()`方法:**使用`renameTo()`方法尝试将源文件重命名为目标文件路径。此方法会自动处理文件的移动过程。 #### 五、文件下载 文件下载涉及到网络操作,通常使用`URLConnection`类来实现。下面是...

    文件批量重命名java源代码

    3. **重命名文件**:使用`File.renameTo(File dest)`方法进行文件重命名。这个方法将当前文件重命名为指定的新文件名。需要注意的是,`renameTo()`方法并不总是跨文件系统工作,如果新文件名指向另一个文件系统,...

    java文件资源管理器

    `java.io`包提供了一些基础的I/O类,如File类,可以用来创建、读写、删除文件以及获取文件信息。`java.nio`包引入了非阻塞I/O和通道的概念,提供了更高效、更灵活的文件操作方式。 1. **新建**:在Java中,可以通过...

    文件系统处理的file.zip

    移动文件则是复制后删除源文件,但`renameTo()`方法在某些情况下可能更有效,特别是当文件在同一文件系统内移动时。 综上所述,"文件系统处理的file.zip"是一个全面的文件管理解决方案,覆盖了文件和文件夹的各种...

    java -pic move.rar_java 移动

    `java.io`包中的`File`类是处理文件和目录的基本类,它可以用来创建、删除、重命名文件或目录,以及获取文件的属性信息。 2. **文件操作**:在Java中移动一个文件,实际上是先复制文件到新的位置,然后删除原始文件...

    Java_JDK6之IO详解

    - `renameTo(File dest)`:将文件或目录重命名为指定的新名称。 - `mkdir()` 和 `mkdirs()`:创建单级或多级目录。 - `copyFile(File src, File dest, boolean overwrite)`:从源文件复制到目标文件,可选择是否覆盖...

    文件重命名Java源码

    重命名文件的核心方法是`File`类的`renameTo()`,它接受一个`File`对象作为参数,表示目标文件的新路径。如果调用成功,源文件会被重命名为新路径所指定的文件名。例如: ```java File oldFile = new File(...

    测试用例之java文件基本操作.zip

    在Java中,我们主要依赖`java.io`包中的类来实现文件操作。最基本的类有`File`,它代表了文件或目录的路径名。`File`对象可以用来检查文件是否存在、获取文件属性(如大小、修改时间)以及进行文件的创建、删除等...

    JAVA实现文件上传、下载,源代码和JAR包

    5. **文件移动**:在确认文件无误后,可将其移动到服务器上的永久位置,使用`java.io.File#renameTo()`方法。 6. **文件下载**:为了提供文件下载服务,可以创建一个新的Servlet,通过`response.getOutputStream()`...

Global site tag (gtag.js) - Google Analytics