package hh;
import java.awt.Desktop;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.*;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
public class FileOperate {
private ListExplorer listExplorer;
private File sourceFileToCopy;//待复制的文件
private ArrayList<File> allSubFile;
FileOperate() {}
FileOperate(ListExplorer listExplorer) {
this.listExplorer = listExplorer;
this.allSubFile = new ArrayList<File> ();
}
//创建文件
public void createNewFile1(File selectedFile)
{
String newFileName = JOptionPane.showInputDialog("文件名:");
File file = new File(selectedFile.getAbsolutePath(),newFileName);
try{
if(!file.exists()){
file.createNewFile();
listExplorer.listUpdate(selectedFile.listFiles());
}}catch(Exception e){System.out.print("创建失败");}
}
//创建文件夹
public void createDir(File selectedFile) {
String newDirName = JOptionPane.showInputDialog("新建文件夹名:");
new File(selectedFile.getAbsolutePath() +File.separator + newDirName).mkdir();
listExplorer.listUpdate(selectedFile.listFiles());
}
//刷新文件
// public void updateFile(File selectedFile) { //刷新文件
// listExplorer.listUpdate(selectedFile.listFiles());
//}
public void openFile(File selectedFile) { //打开文件
if (selectedFile.isFile()) {
try {
Desktop.getDesktop().open(selectedFile);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
else if (selectedFile.isDirectory()) {
listExplorer.setParentDir(selectedFile);
listExplorer.listUpdate(selectedFile.listFiles()); //更新
}
}
public void deleteFile(File selectedFile) { //删除文件
File parent = selectedFile.getParentFile();
deleteFileAndDir(selectedFile);
selectedFile.delete();
listExplorer.listUpdate(parent.listFiles());
}
private void deleteFileAndDir(File selectedFile) { //递归删除
if (selectedFile.isDirectory()) {
File[] fList = selectedFile.listFiles();
if (fList.length == 0) {
selectedFile.delete();
}
else {
for (int i = 0; i < fList.length; i++) {
deleteFile(fList[i]);
}
}
}
selectedFile.delete();
}
public void copyFile(File selectedFile) {
this.sourceFileToCopy = selectedFile;
}
public void pasteFile(File selectedDir) throws IOException {
if (sourceFileToCopy.isFile()) {
File targetFileToCopy = new File(selectedDir.getAbsolutePath() + File.separator + sourceFileToCopy.getName());
this.pasteSingleFile(sourceFileToCopy, targetFileToCopy);
}
else if(sourceFileToCopy.isDirectory()) {
File targetFileToCopy = new File(selectedDir.getAbsolutePath() + File.separator + sourceFileToCopy.getName());
this.pasteDirectory(sourceFileToCopy, targetFileToCopy);
}
listExplorer.listUpdate(selectedDir.listFiles());
}
//压缩文件
public void compressFile(File selectedFile) {
File parent = selectedFile.getParentFile();
String filePath = selectedFile.getAbsolutePath();
String zipPath;
if (selectedFile.isFile()) {
zipPath = filePath.substring(0, filePath.lastIndexOf(".")) + ".zip";
this.zipFile(filePath, zipPath);
}
else if (selectedFile.isDirectory()) {
zipPath = filePath + ".zip";
this.zipDirectory(filePath, zipPath);
}
listExplorer.listUpdate(parent.listFiles());
}
//解压文件
public void decompressFile(File selectedFile) {
File parent = selectedFile.getParentFile();
//this.unZipFile(selectedFile.getAbsolutePath(), selectedFile.getAbsolutePath());
this.unZipFile(selectedFile.getAbsolutePath(), selectedFile.getParent());
listExplorer.listUpdate(parent.listFiles());
}
//加密文件
public void encryptFile(File selectedFile) {
File parent = selectedFile.getParentFile();
String sKey = JOptionPane.showInputDialog("加密密钥:");
File enFile = new File(selectedFile.getAbsolutePath() + ".encrypt");
Crypt.encryptFile(selectedFile, enFile, sKey);
listExplorer.listUpdate(parent.listFiles());
}
//解密文件
public void decryptFile(File selectedFile) {
File parent = selectedFile.getParentFile();
String sKey = JOptionPane.showInputDialog("解密密钥:");
File enFile = new File(selectedFile.getAbsolutePath().substring(0, selectedFile.getAbsolutePath().lastIndexOf(".")));
Crypt.decryptFile(selectedFile, enFile, sKey);
listExplorer.listUpdate(parent.listFiles());
}
// 复制单个文件
private void pasteSingleFile(File sourceFile,File targetFile) throws IOException{
// 新建文件输入流并对它进行缓冲
FileInputStream input = new FileInputStream(sourceFile);
BufferedInputStream inBuff=new BufferedInputStream(input);
// 新建文件输出流并对它进行缓冲
FileOutputStream output = new FileOutputStream(targetFile);
BufferedOutputStream outBuff=new BufferedOutputStream(output);
// 缓冲数组
byte[] b = new byte[1024 * 5];
int len;
while ((len = inBuff.read(b)) != -1) {
outBuff.write(b, 0, len);
}
// 刷新此缓冲的输出流
outBuff.flush();
//关闭流
inBuff.close();
outBuff.close();
output.close();
input.close();
}
// 复制文件夹
private void pasteDirectory(File sourceDir, File targetDir) throws IOException {
// 新建目标目录
(new File(targetDir.toString())).mkdirs();
// 获取源文件夹当前下的文件或目录
File[] file = sourceDir.listFiles();
for (int i = 0; i < file.length; i++) {
if (file[i].isFile()) {
// 源文件
File sourceFile = file[i];
// 目标文件
File targetFile = new File(targetDir.getAbsolutePath() + File.separator + file[i].getName());
pasteSingleFile(sourceFile,targetFile);
}
if (file[i].isDirectory()) {
// 准备复制的源文件夹
File dir1=new File(sourceDir.getAbsolutePath() + File.separator + file[i].getName());
// 准备复制的目标文件夹
File dir2=new File(targetDir.getAbsolutePath() + File.separator + file[i].getName());
pasteDirectory(dir1, dir2);
}
}
}
//压缩单个文件
private void zipFile(String filePath ,String zipPath) { //(文件路径,压缩文件路径)
try {
File file = new File(filePath);
File zipFile = new File(zipPath);
InputStream input = new FileInputStream(file);
//ZipOutputStream此类为以 ZIP 文件格式写入文件实现输出流过滤器
ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(zipFile));
//putNextEntry(ZipEntry e) 开始写入新的 ZIP 文件条目并将流定位到条目数据的开始处。
//ZipEntry 此类用于表示 ZIP 文件条目
zipOut.putNextEntry(new ZipEntry(file.getName()));
int temp = 0;
////write() 将字节数组写入当前 ZIP 条目数据
while((temp = input.read()) != -1){
zipOut.write(temp);
}
input.close();
zipOut.close();
} catch (Exception e) {
e.printStackTrace();
}
}
// 一次性压缩多个文件,文件存放至一个文件夹中
private void z
没有合适的资源?快使用搜索试试~ 我知道了~
Java文件管理实验.zip_MRQ_文件管理
![preview](https://csdnimg.cn/release/downloadcmsfe/public/img/white-bg.ca8570fa.png)
共23个文件
class:16个
java:4个
classpath:1个
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 34 浏览量
2022-09-21
00:19:40
上传
评论
收藏 27KB ZIP 举报
温馨提示
可在文件目录系统对文件或文件夹实现增加、删除、重命名等功能
资源详情
资源评论
资源推荐
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
共 23 条
- 1
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![plist](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![avatar](https://profile-avatar.csdnimg.cn/5f02f331e1ea4222a10b21da48ddddbe_weixin_42651748.jpg!1)
JonSco
- 粉丝: 77
- 资源: 1万+
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)
评论0