`

File类移动文件和文件夹

    博客分类:
  • Java
阅读更多

对于文件夹和文件的移动,File类未提供直接的move函数。只提供了renameTo函数进行重命名,delete函数删除文件及空文件夹。利用这两个函数我们可以进行文件和文件夹的移动。

 

moveFile移动源文件到目的文件夹注意使用renameTo而不是读取文件所有内容,在目的地址新建文件的效率高很多。因为renameTo相当于修改了快捷方式,并没有增加磁盘io。只是修改磁盘一个区域索引地址而已。

 

moveDirectory移动源文件夹中所有内容(包括子文件夹)到目的文件夹

 

可以在函数中加更丰富的提示以及判断。文件不存在该怎么做,是否自动创建文件夹,是否删除源文件夹,文件或文件夹移动失败如何等等。


moveFile源码:

	/** 
	* 移动文件 
	* @param srcFileName 	源文件完整路径
	* @param destDirName 	目的目录完整路径
	* @return 文件移动成功返回true,否则返回false 
	*/  
	public boolean moveFile(String srcFileName, String destDirName) {
		
		File srcFile = new File(srcFileName);
		if(!srcFile.exists() || !srcFile.isFile()) 
		    return false;
		
		File destDir = new File(destDirName);
		if (!destDir.exists())
			destDir.mkdirs();
		
		return srcFile.renameTo(new File(destDirName + File.separator + srcFile.getName()));
	}

 

moveDirectory源码: 

	/** 
	* 移动目录 
	* @param srcDirName 	源目录完整路径
	* @param destDirName 	目的目录完整路径
	* @return 目录移动成功返回true,否则返回false 
	*/  
	public  boolean moveDirectory(String srcDirName, String destDirName) {
		
		File srcDir = new File(srcDirName);
		if(!srcDir.exists() || !srcDir.isDirectory())  
			return false;  
	   
	   File destDir = new File(destDirName);
	   if(!destDir.exists())
		   destDir.mkdirs();
	   
	   /**
	    * 如果是文件则移动,否则递归移动文件夹。删除最终的空源文件夹
	    * 注意移动文件夹时保持文件夹的树状结构
	    */
	   File[] sourceFiles = srcDir.listFiles();
	   for (File sourceFile : sourceFiles) {
		   if (sourceFile.isFile())
			   moveFile(sourceFile.getAbsolutePath(), destDir.getAbsolutePath());
		   else if (sourceFile.isDirectory())
			   moveDirectory(sourceFile.getAbsolutePath(), 
					   destDir.getAbsolutePath() + File.separator + sourceFile.getName());
		   else
			   ;
	   }
	   return srcDir.delete();
	}

 

参考:http://download.oracle.com/javase/1.4.2/docs/api/java/io/File.html

分享到:
评论

相关推荐

    java移动文件夹下所有文件

    总的来说,Java提供了强大的文件操作API,使得我们可以轻松地移动文件和文件夹。在实际应用中,还应该考虑异常处理、权限问题、并发访问等问题,以确保代码的健壮性和安全性。在进行大量文件操作时,可能还需要考虑...

    Qt读取文件夹内容,文件移动,以及文件夹内文件删除

    在Qt编程中,处理文件和目录的操作是常见的需求,包括读取文件夹内容、移动文件以及删除文件夹内的文件。本文将深入探讨这些主题,并提供相关的Qt API和实践示例。 首先,我们要了解Qt中的QDir类,它是用于处理文件...

    file文件的学习,包括(创建文件和文件夹,文件和文件夹的移动、删除、重命名)

    2. **移动文件和文件夹** 使用`shutil`模块的`move()`函数可以移动文件或文件夹。它会将源路径移动到目标路径,并且如果目标路径已经存在,它会被覆盖: ```python import shutil shutil.move('source_file.txt'...

    一个PHP文件操作类(文件和文件夹创建,复制,移动和删除).zip

    4. **移动文件和文件夹** 移动文件和目录对应于`moveFile()`和`moveDirectory()`方法。这两个方法会使用`rename()`函数来重命名(即移动)文件,而`rename()`函数不能处理跨文件系统的移动,所以`moveDirectory()`...

    一个PHP文件操作类(文件和文件夹创建,复制,移动和删除)

    这个名为"08PHP文件操作类(文件和文件夹创建,复制,移动和删除)"的类库,提供了一套完整的解决方案来处理文件系统中的各种任务。下面我们将详细探讨这个类库中的关键知识点。 首先,类库的核心功能是文件操作。...

    net里对文件和文件夹的操作

    在实际编程中,根据具体需求,选择合适的方法和类组合使用,就能完成对文件和文件夹的各种操作。记得在操作完成后关闭文件流,释放资源,并正确处理可能出现的异常,以确保程序的稳定性和可靠性。

    c#文件,文件夹基本操作

    // 删除文件夹(包含所有子文件夹和文件) Directory.Delete("文件夹名", true); ``` 5. **遍历文件夹** `Directory.GetFiles()`和`Directory.GetDirectories()`用于获取指定目录下的文件和子目录列表。递归...

    Qt文件或文件夹拷贝

    在Qt库中,进行文件和文件夹的拷贝操作是一项常见的任务,这在软件开发中尤其重要,因为可能需要在程序运行过程中动态处理文件和数据迁移。`Qt`提供了丰富的API来实现这些功能,让我们详细了解一下如何使用`Qt`进行...

    C#文件夹的移动

    在C#中,文件夹的移动通常涉及到`System.IO`命名空间下的`Directory`和`File`类。下面我们将详细讲解如何使用这些类来实现文件夹的移动。 首先,`Directory`类提供了许多与文件夹相关的操作方法,如创建、删除、...

    c++文件,文件夹操作简单包装类代码

    4. **文件和文件夹的移动和重命名**:`rename()`方法可以用于文件或文件夹的重命名,`move()`方法用于移动文件或文件夹到指定位置。 5. **文件属性的获取**:`exists()`检查文件或文件夹是否存在,`isFile()`和`...

    .net操作文件和文件夹

    在.NET框架中,操作文件和文件夹是常见的任务,涵盖了创建、读取、写入、删除、移动等操作。为了及时检测文件夹中的文件或文件夹的变化情况,开发者可以利用.NET提供的文件系统监视器(FileSystemWatcher)类。下面...

    C#操作文件及文件夹

    - `File` 类:提供静态方法用于创建、打开、读取、写入、追加、复制、移动和删除文件。例如,`File.WriteAllText()` 用于写入文本到文件,`File.ReadAllText()` 用于读取文件的全部文本。 - `FileStream` 类:提供...

    java中File类应用遍历文件夹下所有文件

    File类的应用非常广泛,例如创建、删除、复制、移动、读取文件和文件夹等。今天,我们来讨论File类的另一个重要应用:遍历文件夹下所有文件。 遍历文件夹下所有文件是指从指定的文件夹中获取所有文件,包括子...

    ubuntu下删除,重命名文件、文件夹

    mv命令不仅可以重命名文件和文件夹,还可以将文件和文件夹移动到指定的目录下。 * 将文件 file1 重命名为 file2:mv file1 file2 * 将文件 file1 移动到目录 dir1 下:mv file1 dir1 * 将目录 dir1 移动到目录 dir2...

    UiPath下载文件后移动.docx

    UiPath 下载文件后移动 UiPath 是一款自动化流程工具,能够帮助用户自动完成各种重复性...UiPath 的 Download File 活动和 Move File 活动可以帮助用户自动完成下载文件和移动文件的操作,提高工作效率和自动化程度。

    .NET中文件与文件夹的操作

    - 移动文件:`File.Move()`方法用于移动文件到新的位置,同时可以改变文件名。它需要两个参数,一个是源文件的完整路径,另一个是目标路径。例如:`File.Move("C:\\hoan.txt", "D:\\hoan.txt")`,这会将"C:\\hoan....

    C++Builder 6的文件和文件夹操作

    除了上述基本的文件操作外,C++Builder 6还提供了`SHFileOperation`函数,该函数允许执行更高级别的文件操作,如复制、移动、删除文件和文件夹等。其使用方式较为复杂,需要传递一个`SHFILEOPSTRUCT`结构体作为参数...

    拷贝文件到指定文件夹,还有其他的文件操作

    1. **移动/重命名文件**:可以使用`shutil.move()`函数,它既可以移动文件,也可以实现重命名。 2. **创建文件和文件夹**:使用`os`库的`os.makedirs()`可以创建多层目录,`open()`函数配合`write()`可以创建并写入...

    Excel-VBA宏编程实例源代码-移动文档和文件夹.zip

    5. **Move方法**:用于移动文件或文件夹到新的位置。例如,`fileObject.Move(newPath)`会将指定的文件移动到新的路径下。 6. **Copy方法**:用于复制文件或文件夹到新的位置。`fileObject.Copy(newPath, overwrite)...

Global site tag (gtag.js) - Google Analytics