• 大小: 40KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-22
  • 语言: Java
  • 标签: Java实现  

资源简介

通过Java实现资源管理器,可以进行剪切、复制、粘贴、删除等操作,类似于Windows资源管理器的一些功能。

资源截图

代码片段和文件信息

package cn.lel.explorer;

import java.awt.Dimension;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import javax.swing.DefaultListModel;
import javax.swing.JList;
import javax.swing.tree.DefaultMutableTreeNode;

public class FileList extends JList {
private long filesize;
//flag控制剪切和复制
private int flag;
private File inPutFile;
private FileTree fileTree = new FileTree();

public long getFilesize() {
return filesize;
}

public void setFilesize(long filesize) {
this.filesize = filesize;
}


public File getInPutFile() {
return inPutFile;
}

public void setInPutFile(File inPutFile) {
this.inPutFile = inPutFile;
}

public int getFlag() {
return flag;
}

public void setFlag(int flag) {
this.flag = flag;
}

public FileList() {
/*----------初始化列表框-------------*/
File file_node = null;
FileTreeModel model2 = (FileTreeModel) fileTree.getModel();
DefaultMutableTreeNode node = (DefaultMutableTreeNode) model2.getChild(
model2.getRoot() 0);
file_node = ((FileNode) node.getUserobject()).file;
setList(file_node.listFiles());
}

// 创建列表框模型,把模型添加到列表中
public void setList(File[] files) {
DefaultListModel listModel = new DefaultListModel();
for (File f : files) {
// 将文件插入到列表模型中
listModel.addElement(f);
}
this.setModel(listModel);
this.setCellRenderer(new cn.lel.explorer.ImageCellRenderer());
}

// srcFile源文件 destDir 目标文件所在的目录
public void copyGeneralFile(File destDir File srcFile) {
if (!srcFile.exists()) { // 源文件或源文件夹不存在
return;
}
if (srcFile.isFile()) { // 文件复制
copyFile(destDir srcFile true);
} else if (srcFile.isDirectory()) { // 文件夹复制
copyDirectory(destDir srcFile true);
}
}

// overwriteExistFile 是否覆盖目标目录下的同名文件 srcFile源文件 destDir 目标文件所在的目录
public void copyFile(File destDir File srcFile boolean overwriteExistFile) {
// 源文件不存在
if (!srcFile.exists() || !srcFile.isFile()) {
return;
}
// 获取待复制文件的文件名
String fileName = srcFile.getName();
//System.out.println(fileName);
File destFile = new File(destDir fileName);
//System.out.println(destFile);
// 源文件路径和目标文件路径重复
if (destFile.getAbsolutePath().equals(srcFile.getAbsolutePath())) {
return;
}
// 目标目录下已有同名文件且不允许覆盖
if (destFile.exists() && !overwriteExistFile) {
return;
}
// 目录不存在并且创建目录失败直接返回
if (!destDir.exists() && !destDir.mkdirs()) { // 目录不存在并且创建目录失败直接返回
return;
}
try {
// method()复制文件
method(destFile srcFile);
} catch (IOException e) {
e.printStackTrace();
}
}

public void copyDirectory(File destDir File srcFile
boolean overwriteExistDir) {
if (destDir.getPath().contains(srcFile.getPath()))
return;
// 源文件夹不存在
if (!srcFile.exists

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-10-30 19:05  myExplorer\
     文件         301  2017-10-30 10:59  myExplorer\.classpath
     文件         386  2017-10-30 10:59  myExplorer\.project
     目录           0  2017-10-30 19:05  myExplorer\.settings\
     文件         598  2017-10-30 10:59  myExplorer\.settings\org.eclipse.jdt.core.prefs
     目录           0  2017-10-30 19:05  myExplorer\bin\
     目录           0  2017-10-30 19:05  myExplorer\bin\cn\
     目录           0  2017-10-30 19:05  myExplorer\bin\cn\lel\
     目录           0  2017-10-30 19:05  myExplorer\bin\cn\lel\explorer\
     文件        5305  2017-10-30 10:59  myExplorer\bin\cn\lel\explorer\FileList.class
     文件         594  2017-10-30 10:59  myExplorer\bin\cn\lel\explorer\FileNode.class
     文件        2323  2017-10-30 10:59  myExplorer\bin\cn\lel\explorer\FileTree$1.class
     文件        1824  2017-10-30 10:59  myExplorer\bin\cn\lel\explorer\FileTree$2.class
     文件        3585  2017-10-30 10:59  myExplorer\bin\cn\lel\explorer\FileTree.class
     文件        1788  2017-10-30 10:59  myExplorer\bin\cn\lel\explorer\FileTreeModel.class
     文件        1758  2017-10-30 10:59  myExplorer\bin\cn\lel\explorer\FileTreeRenderer.class
     文件        1754  2017-10-30 10:59  myExplorer\bin\cn\lel\explorer\FileTreeTest.class
     文件        1493  2017-10-30 10:59  myExplorer\bin\cn\lel\explorer\ImageCellRenderer.class
     目录           0  2017-10-30 19:05  myExplorer\bin\cn\lel\jframe\
     文件        2254  2017-10-30 10:59  myExplorer\bin\cn\lel\jframe\NewJframe$1.class
     文件         776  2017-10-30 10:59  myExplorer\bin\cn\lel\jframe\NewJframe$10.class
     文件         554  2017-10-30 10:59  myExplorer\bin\cn\lel\jframe\NewJframe$11.class
     文件        2697  2017-10-30 10:59  myExplorer\bin\cn\lel\jframe\NewJframe$2.class
     文件        1293  2017-10-30 10:59  myExplorer\bin\cn\lel\jframe\NewJframe$3.class
     文件        1005  2017-10-30 10:59  myExplorer\bin\cn\lel\jframe\NewJframe$4.class
     文件        1005  2017-10-30 10:59  myExplorer\bin\cn\lel\jframe\NewJframe$5.class
     文件        1227  2017-10-30 10:59  myExplorer\bin\cn\lel\jframe\NewJframe$6.class
     文件        1216  2017-10-30 10:59  myExplorer\bin\cn\lel\jframe\NewJframe$7.class
     文件        1779  2017-10-30 10:59  myExplorer\bin\cn\lel\jframe\NewJframe$8.class
     文件         774  2017-10-30 10:59  myExplorer\bin\cn\lel\jframe\NewJframe$9.class
     文件        8999  2017-10-30 10:59  myExplorer\bin\cn\lel\jframe\NewJframe.class
............此处省略13个文件信息

评论

共有 条评论