資源簡介
通過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\jfr
?????文件????????2254??2017-10-30?10:59??myExplorer\bin\cn\lel\jfr
?????文件?????????776??2017-10-30?10:59??myExplorer\bin\cn\lel\jfr
?????文件?????????554??2017-10-30?10:59??myExplorer\bin\cn\lel\jfr
?????文件????????2697??2017-10-30?10:59??myExplorer\bin\cn\lel\jfr
?????文件????????1293??2017-10-30?10:59??myExplorer\bin\cn\lel\jfr
?????文件????????1005??2017-10-30?10:59??myExplorer\bin\cn\lel\jfr
?????文件????????1005??2017-10-30?10:59??myExplorer\bin\cn\lel\jfr
?????文件????????1227??2017-10-30?10:59??myExplorer\bin\cn\lel\jfr
?????文件????????1216??2017-10-30?10:59??myExplorer\bin\cn\lel\jfr
?????文件????????1779??2017-10-30?10:59??myExplorer\bin\cn\lel\jfr
?????文件?????????774??2017-10-30?10:59??myExplorer\bin\cn\lel\jfr
?????文件????????8999??2017-10-30?10:59??myExplorer\bin\cn\lel\jfr
............此處省略13個文件信息
- 上一篇:動態sin和cos函數圖像
- 下一篇:圖書管理系統數據庫課程設計java
評論
共有 條評論