1. 移动文件或者文件夹
/**
* 移动文件或者文件夹,如从e:/aa.txt到e:/tmp/aa.txt, 从e:/aa到e:/bb/aa
* @param input String
* @param output String
*/
public static void move(String input, String output){
File inputFile = new File(input);
File outputFile = new File(output);
try {
inputFile.renameTo(outputFile);
} catch (Exception ex) {
ex.printStackTrace();
}
}//move
2. 复制单个文件
/**
* 复制单个文件
* @param source
* @param dest
* @throws IOException
*/
public static void copyFile(String source, String dest)throws IOException{
final int BUFSIZE = 65536;
File f = new File(source);
File f2 = new File(dest);
if(!f.exists()){
return ;
}
if(!f2.exists()){
File parent = new File(f2.getParent()); //得到父文件夹
if(!parent.exists()){
parent.mkdirs();
}
f2.createNewFile();
}
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(f));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(dest));
byte[] buf = new byte[BUFSIZE];
while((bis.read(buf))!=-1){
bos.write(buf);
}
bos.close();
bis.close();
}
3. 复制文件夹及其子文件夹
/**
* 复制文件夹及其子文件夹
* @param source String 源文件夹,如: d:/tmp
* @param dest String 目标文件夹,如: e:/tmp
* @throws IOException
*/
public static void copyFolder(String source, String dest)throws IOException{
File f1 = new File(source);
File f2 = new File(dest);
if(!f1.exists()){
return ;
}
if((!f2.exists())&&(f1.isDirectory())){
f2.mkdirs();
}
String[] fileList = f1.list();
if(fileList == null){
return ;
}
for(String file:fileList){
String newSource = f1.getAbsolutePath() + File.separator + file;
String newDest = f2.getAbsolutePath() + File.separator + file;
if(new File(newSource).isDirectory()){
logger.info("正在复制文件夹从"+newSource+"到"+newDest+"。。。");
copyFolder(newSource, newDest);
}else{
logger.info("正在复制文件从"+newSource+"到"+newDest+"。。。");
copyFile(newSource, newDest);
}
}//for
}
4. 删除某个文件夹
/**
* 删除某个文件夹下的所有文件和所有子文件夹, 不包括它自己
* @param folder String
* @param delFolder boolean 是否连文件夹一起删除
* @throws IOException
*/
public static void deleteAllFiles(String folder, boolean delFolder)throws IOException {
File f1 = new File(folder);
if (!f1.exists()) {
return;
}
String[] fileList = f1.list();
if (fileList == null) { //空文件夹
if(delFolder){
logger.info("正在删除文件夹"+f1.getAbsolutePath()+"。。。");
f1.delete(); //删除文件夹
}
return;
}
for (String file : fileList) {
String newSource = f1.getAbsolutePath() + File.separator + file;
if (new File(newSource).isDirectory()) {
deleteAllFiles(newSource, delFolder);
if(delFolder){
logger.info("正在删除文件夹"+newSource+"。。。");
new File(newSource).delete(); //删除文件夹
}
} else {
logger.info("正在删除文件"+newSource+"。。。");
new File(newSource).delete();
}
}//for
}
/**
* 删除整个文件夹,包括它本身
* @param dir String
* @throws IOException
*/
public static void deleteFolder(String dir)throws IOException{
deleteAllFiles(dir, true);
File f = new File(dir);
logger.info("正在删除文件夹"+f.getAbsolutePath()+"...");
f.delete();
}
分享到:
相关推荐
在IT领域,编程任务经常涉及到对文件和文件夹的操作,如复制、删除和移动。本教程将详细讲解如何使用Visual Basic 6.0(VB6)通过API(应用程序接口)函数来实现这些功能,尤其针对一个文件夹下所有文件和子文件夹的...
6. **文件夹操作**:除了文件操作,类库可能还包括`copyDirectory()`、`moveDirectory()`和`deleteDirectory()`方法,它们分别对应于文件夹的复制、移动和删除。这些方法可能使用递归算法遍历整个目录结构。 此外,...
2. 目录API:Windows API提供了诸如CreateDirectory、RemoveDirectory、CopyFile、MoveFile等函数,用于创建、删除和移动文件或目录。 二、文件夹复制 1. 使用SHFileOperation:这是Windows Shell API中的一个函数...
- **联系**: 两者都涉及源文件夹和目标位置,都可以通过拖放操作实现,且在操作过程中都需要考虑目标位置是否存在同名文件夹的问题。 **额外技巧** 1. **批量操作**: 可以通过选择多个文件夹进行批量复制或移动。 ...
通过以上分析和示例,我们不仅理解了批处理脚本的基本语法和结构,还掌握了如何使用批处理脚本来自动化创建与文件同名的文件夹并移动文件至该文件夹的过程,这对于日常的数据管理和文件组织具有重要的实际意义。
4. **移动文件和文件夹** 移动文件和目录对应于`moveFile()`和`moveDirectory()`方法。这两个方法会使用`rename()`函数来重命名(即移动)文件,而`rename()`函数不能处理跨文件系统的移动,所以`moveDirectory()`...
通过编写批处理脚本,用户可以实现复杂的任务自动化,如文件复制、移动、删除等操作。 #### 方法一:使用`RD`命令 `RD`命令用于删除目录(文件夹)。该命令的基本格式为: ```batch RD [drive:]path [options] ``...
在QT中,文件夹和文件操作是非常重要的,QDir和QFile类提供了大量的函数来实现文件夹和文件的操作,例如创建、删除、复制、移动等。使用这些函数可以轻松地实现文件夹和文件的复制粘贴。 知识点5:QT中的错误处理 ...
Name函数允许你重命名或移动文件,但不能移动文件夹。格式为`Name old_pathname As new_pathname`,其中`old_pathname`是原始路径,`new_pathname`是新的路径和名称。在使用时,需要注意不要将文件重命名为已存在的...
移动文件或文件夹: 1. 选中文件或文件夹。 2. 按住Ctrl键,不放。 3. 拖放到需移动的位置。 复制文件或文件夹: 1. 选中文件或文件夹。 2. 右击鼠标,在弹出的快捷菜单中选取复制。 3. 到需复制的位置粘帖。 ...
这个命名空间包含了丰富的功能,允许开发者进行读写文件、创建删除文件夹、移动复制文件等一系列操作。以下是对这些核心知识点的详细阐述: 1. **文件操作** - **创建文件**:使用`File.Create`方法可以创建一个新...
复制和移动文件或文件夹可以通过拖动操作,同时按住Ctrl键进行复制,按住Shift键进行移动。此外,也可以通过右键菜单的"复制"、"剪切"和"粘贴"选项,或者使用快捷键Ctrl+C(复制)、Ctrl+V(粘贴)、Ctrl+X(剪切)...
文件夹复制则涉及整个目录结构的复制,包括文件夹内的所有子文件夹和文件。与文件复制类似,用户可以通过图形界面或者命令行工具进行操作。Windows的“复制”和“粘贴”功能同样适用于文件夹,但更推荐使用“发送到...
File类提供了多种文件操作方法,包括新建文件、删除文件、复制文件、移动文件等。而输入/输出流则提供了读取和写入文件的功能。 七、总结 文件操作是计算机科学和信息技术中的一种基本操作,涉及到文件的创建、...
课程内容涵盖文件夹的创建、重命名、复制、移动和删除等基本操作,旨在帮助学生理解和掌握计算机系统中文件管理的重要性。 在教材分析部分,该课程位于信息技术基础和操作系统介绍之后,是理论与实践结合的关键阶段...
- 移动文件 (`moveFile`) - 删除文件 (`unlinkFile`) - 删除文件夹 (`unlinkDir`) #### 三、类方法详解 ##### 1. `createDir($aimUrl)` **功能描述:** 创建指定路径的文件夹。如果路径中包含多级文件夹,则会...
当用户选中一个文件并点击鼠标右键时,除了常规的“复制到...”和“移动到...”选项外,还会出现这些预设的路径选项,一键即可完成复制或移动操作,省去了打开文件浏览器、寻找目标文件夹的步骤。 标签“右键”指的...
针对标题“C#文件夹的移动”和描述中提到的“可以实现不同盘符之间的移动,其原理是对文件的深度复制和删除”,我们可以深入探讨C#语言中如何进行文件夹移动的操作,以及其背后的原理。 在C#中,文件夹的移动通常...
- `FO_MOVE`: 移动文件/文件夹 - `FO_COPY`: 复制文件/文件夹 - `FO_RENAME`: 重命名文件/文件夹 3. **pfrom**: 源路径字符串,以`NULL`终止。 4. **pto**: 目标路径字符串,同样以`NULL`终止。 5. **fflags**: ...
java 文件或文件夹 创建 删除 复制 移动 指定目录等