import java.io.*;
public class FileOperate {
public FileOperate() {
}
/**
* 新建目录
* @param folderPath String 如 c:/fqf
* @return boolean
*/
public void newFolder(String folderPath) {
try {
String filePath = folderPath;
filePath = filePath.toString();
java.io.File myFilePath = new java.io.File(filePath);
if (!myFilePath.exists()) {
myFilePath.mkdir();
}
}
catch (Exception e) {
System.out.println( "新建目录操作出错 ");
e.printStackTrace();
}
}
/**
* 新建文件
* @param filePathAndName String 文件路径及名称 如c:/fqf.txt
* @param fileContent String 文件内容
* @return boolean
*/
public void newFile(String filePathAndName, String fileContent) {
try {
String filePath = filePathAndName;
filePath = filePath.toString();
File myFilePath = new File(filePath);
if (!myFilePath.exists()) {
myFilePath.createNewFile();
}
FileWriter resultFile = new FileWriter(myFilePath);
PrintWriter myFile = new PrintWriter(resultFile);
String strContent = fileContent;
myFile.println(strContent);
resultFile.close();
}
catch (Exception e) {
System.out.println( "新建目录操作出错 ");
e.printStackTrace();
}
}
/**
* 删除文件
* @param filePathAndName String 文件路径及名称 如c:/fqf.txt
* @param fileContent String
* @return boolean
*/
public void delFile(String filePathAndName) {
try {
String filePath = filePathAndName;
filePath = filePath.toString();
java.io.File myDelFile = new java.io.File(filePath);
myDelFile.delete();
}
catch (Exception e) {
System.out.println( "删除文件操作出错 ");
e.printStackTrace();
}
}
/**
* 删除文件夹
* @param filePathAndName String 文件夹路径及名称 如c:/fqf
* @param fileContent String
* @return boolean
*/
public void delFolder(String folderPath) {
try {
delAllFile(folderPath); //删除完里面所有内容
String filePath = folderPath;
filePath = filePath.toString();
java.io.File myFilePath = new java.io.File(filePath);
myFilePath.delete(); //删除空文件夹
}
catch (Exception e) {
System.out.println( "删除文件夹操作出错 ");
e.printStackTrace();
}
}
/**
* 删除文件夹里面的所有文件
* @param path String 文件夹路径 如 c:/fqf
*/
public void delAllFile(String path) {
File file = new File(path);
if (!file.exists()) {
return;
}
if (!file.isDirectory()) {
return;
}
String[] tempList = file.list();
File temp = null;
for (int i = 0; i < tempList.length; i++) {
if (path.endsWith(File.separator)) {
temp = new File(path + tempList[i]);
}
else {
temp = new File(path + File.separator + tempList[i]);
}
if (temp.isFile()) {
temp.delete();
}
if (temp.isDirectory()) {
delAllFile(path+ "/ "+ tempList[i]);//先删除文件夹里面的文件
delFolder(path+ "/ "+ tempList[i]);//再删除空文件夹
}
}
}
/**
* 复制单个文件
* @param oldPath String 原文件路径 如:c:/fqf.txt
* @param newPath String 复制后路径 如:f:/fqf.txt
* @return boolean
*/
public void copyFile(String oldPath, String newPath) {
try {
int bytesum = 0;
int byteread = 0;
File oldfile = new File(oldPath);
if (oldfile.exists()) { //文件存在时
InputStream inStream = new FileInputStream(oldPath); //读入原文件
FileOutputStream fs = new FileOutputStream(newPath);
byte[] buffer = new byte[1444];
int length;
while ( (byteread = inStream.read(buffer)) != -1) {
bytesum += byteread; //字节数 文件大小
System.out.println(bytesum);
fs.write(buffer, 0, byteread);
}
inStream.close();
}
}
catch (Exception e) {
System.out.println( "复制单个文件操作出错 ");
e.printStackTrace();
}
}
/**
* 复制整个文件夹内容
* @param oldPath String 原文件路径 如:c:/fqf
* @param newPath String 复制后路径 如:f:/fqf/ff
* @return boolean
*/
public void copyFolder(String oldPath, String newPath) {
try {
(new File(newPath)).mkdirs(); //如果文件夹不存在 则建立新文件夹
File a=new File(oldPath);
String[] file=a.list();
File temp=null;
for (int i = 0; i < file.length; i++) {
if(oldPath.endsWith(File.separator)){
temp=new File(oldPath+file[i]);
}
else{
temp=new File(oldPath+File.separator+file[i]);
}
if(temp.isFile()){
FileInputStream input = new FileInputStream(temp);
FileOutputStream output = new FileOutputStream(newPath + "/ " +
(temp.getName()).toString());
byte[] b = new byte[1024 * 5];
int len;
while ( (len = input.read(b)) != -1) {
output.write(b, 0, len);
}
output.flush();
output.close();
input.close();
}
if(temp.isDirectory()){//如果是子文件夹
copyFolder(oldPath+ "/ "+file[i],newPath+ "/ "+file[i]);
}
}
}
catch (Exception e) {
System.out.println( "复制整个文件夹内容操作出错 ");
e.printStackTrace();
}
}
/**
* 移动文件到指定目录
* @param oldPath String 如:c:/fqf.txt
* @param newPath String 如:d:/fqf.txt
*/
public void moveFile(String oldPath, String newPath) {
copyFile(oldPath, newPath);
delFile(oldPath);
}
/**
* 移动文件到指定目录
* @param oldPath String 如:c:/fqf.txt
* @param newPath String 如:d:/fqf.txt
*/
public void moveFolder(String oldPath, String newPath) {
copyFolder(oldPath, newPath);
delFolder(oldPath);
}
}
分享到:
相关推荐
本教程将详细介绍如何在这样的环境下遍历文件夹、复制文件、删除文件以及复制文件内容。 一、遍历文件夹 在C#中,我们可以使用`System.IO`命名空间下的`DirectoryInfo`类来遍历文件夹。以下是一个简单的示例: ``...
总之,Windows下使用C语言实现文件和文件夹的复制删除命令是一个综合性的任务,涉及到文件系统操作、通配符处理、目录树遍历、用户交互以及错误处理等多个方面。通过实践,开发者可以增强对操作系统API的掌握,提升...
此外,文件和文件夹的复制操作可能涉及文件权限问题,这在不同的操作系统中可能有不同的处理方式。因此,开发者需要确保所写代码具有相应的权限,避免在复制过程中出现权限不足导致的错误。 综上所述,通过QT框架...
在QT中,文件夹和文件操作是非常重要的,QDir和QFile类提供了大量的函数来实现文件夹和文件的操作,例如创建、删除、复制、移动等。使用这些函数可以轻松地实现文件夹和文件的复制粘贴。 知识点5:QT中的错误处理 ...
### C#实现文件夹及其子文件夹和文件的复制 在C#开发中,经常会遇到需要复制文件夹及其内部所有子文件夹和文件的需求。这种需求常见于备份系统、文件同步服务或者数据迁移工具等场景。本文将详细介绍如何使用C#来...
在Java编程语言中,文件和文件夹的复制是一项常见的任务,尤其在系统迁移、数据备份或者软件部署等场景中。本教程将详细讲解如何使用Java的文件I/O(Input/Output)功能,通过递归的方式来实现文件及文件夹的复制,...
在IT领域,文件和文件夹的复制是日常工作中不可或缺的操作,尤其对于系统管理员、开发者以及普通用户来说。这里我们将深入探讨“文件夹复制”和“文件复制”这两个关键概念,以及相关的工具和技术。 首先,文件复制...
4. 安全性:确保复制操作不会导致数据泄露或破坏,例如,检查源文件的安全性,避免恶意文件的复制。 最后,从提供的压缩包文件名称“SearchRemoveFile”来看,可能还包含了搜索和删除文件的功能。搜索文件可能涉及...
在C#编程中,文件和文件夹的基本操作是日常开发中的常见任务,涵盖了从创建、读写、修改到管理文件系统结构的多个方面。本文将深入探讨如何使用C#进行这些操作,通过实例来帮助理解。 1. **新建文件与文件夹** 要...
例如,我们可以将C盘名为“student”的文件夹删除。 总结:本节我们学习了文件和文件夹的基本操作,包括选定文件或文件夹、新建文件夹、移动、复制文件或文件夹、文件或文件夹的改名和删除文件或文件夹。这些操作是...
本主题主要围绕"文件及文件夹常用操作类",涵盖复制、剪切、查找、删除等基础功能,以及文件夹的创建与打开等操作。 1. **复制与剪切**: - **复制**:这是将文件或文件夹从一个位置创建到另一个位置的副本,通常...
这个命名空间包含了丰富的功能,允许开发者进行读写文件、创建删除文件夹、移动复制文件等一系列操作。以下是对这些核心知识点的详细阐述: 1. **文件操作** - **创建文件**:使用`File.Create`方法可以创建一个新...
四、文件夹删除 1. RemoveDirectory函数:适用于空文件夹的删除。若文件夹非空,需要先删除或移动其中的所有文件和子文件夹。 2. SHFileOperation同样支持文件夹的删除,可以设置相应的操作标志。 五、代码实现...
- `FO_DELETE`: 删除文件/文件夹 - `FO_MOVE`: 移动文件/文件夹 - `FO_COPY`: 复制文件/文件夹 - `FO_RENAME`: 重命名文件/文件夹 3. **pfrom**: 源路径字符串,以`NULL`终止。 4. **pto**: 目标路径字符串,...
6. **文件夹操作**:除了文件操作,类库可能还包括`copyDirectory()`、`moveDirectory()`和`deleteDirectory()`方法,它们分别对应于文件夹的复制、移动和删除。这些方法可能使用递归算法遍历整个目录结构。 此外,...
在Microsoft Foundation Classes (MFC)库中,...文件夹系统操作演示"文件中,可能包含了更复杂的示例,比如涉及到目录操作、批量文件操作等。通过查看和学习这些示例,你可以进一步提升对MFC文件操作的理解和实践能力。
在WinForms环境中,我们通常会设计一个用户界面,包括按钮、文本框等控件,用户可以通过输入或选择文件夹路径,然后点击按钮触发复制操作。事件处理程序中将包含上述逻辑,同时,为了提供反馈,可以使用` MessageBox...
目标文件夹3"`这一行则定义了要复制文件的目标文件夹,你可以根据需要添加或删除文件夹,各个文件夹路径之间用分号`;`隔开。 `for %%i in (%folders%) do ( ... )`这部分是一个for循环,它会遍历`folders`变量中的...
开发者可能会用到`Form`类来创建用户界面,`Button`控件启动复制操作,`ProgressBar`控件显示复制进度,同时使用`Directory`和`File`类来进行文件操作。 在实际应用中,批量复制还可能涉及到错误处理和文件冲突的...
文件和文件夹是计算机操作...以上就是关于文件与文件夹操作的基础知识,包括它们的定义、类型、图标、创建、选择、打开、重命名、复制、移动、删除以及恢复等操作。理解并熟练掌握这些操作是使用计算机系统的基本技能。