开发一个完整的文件管理工具,实现文件和文件夹的遍历、创建、删除、查看内容等功能。
代码
界面设计
import fonts.fontAwesome;
import win.ui;
/*DSG{{*/
var winform = win.form(text="文件管理";right=760;bottom=470;acceptfiles=1;bgcolor=15780518)
winform.add(
Create_file={cls="button";text="创建文件";left=570;top=350;right=650;bottom=390;ah=1;aw=1;bgcolor=15780518;z=10};
Delete_file={cls="button";text="删除文件";left=370;top=290;right=450;bottom=330;ah=1;aw=1;bgcolor=15780518;clipch=1;z=3};
Delete_folder={cls="button";text="删除文件夹";left=470;top=290;right=550;bottom=330;ah=1;aw=1;bgcolor=15780518;z=9};
Directory={cls="button";text="选择目录";left=370;top=350;right=450;bottom=390;ah=1;aw=1;bgcolor=15780518;z=5};
Folder_creation={cls="button";text="创建文件夹";left=570;top=290;right=650;bottom=330;ah=1;aw=1;bgcolor=15780518;z=6};
Select_file={cls="button";text="选择文件";left=470;top=350;right=550;bottom=390;ah=1;aw=1;bgcolor=15780518;z=8};
Traverse_folders={cls="button";text="遍历文件夹";left=670;top=290;right=750;bottom=330;ah=1;aw=1;bgcolor=15780518;z=4};
View_file_content={cls="button";text="查看文件内容";left=670;top=350;right=750;bottom=390;ah=1;aw=1;bgcolor=15780518;z=7};
edit={cls="edit";left=20;top=0;right=740;bottom=260;ah=1;aw=1;bgcolor=15329791;edge=1;hscroll=1;multiline=1;vscroll=1;z=2};
edit1={cls="edit";left=20;top=290;right=300;bottom=330;ah=1;aw=1;bgcolor=15329791;edge=1;z=1};
)
/*}}*/
winform.show();
文件夹遍历功能
//创建遍历方法
var enumThread = function(winform){
import fsys;
var root = winform.edit1.text;
fsys.enum( root,"*.*",
function(dirname,filename,fullpath,findData){
var path = fsys.path.relative(fullpath,root,false);
if(filename){
winform.edit.print("文件",path);
}
else {
winform.edit.print("目录",path);
}
if(winform.Traverse_folders.text != "停止"){
return false;
}
}
);
winform.edit.print("已完成");
}
//遍历文件夹
import fsys;
winform.Traverse_folders.oncommand = function(id,event){
if( winform.Traverse_folders.text = "停止" ){
winform.Traverse_folders.text = "遍历文件夹";
return;
}
if( ! fsys.isDir( winform.edit1.text ) ){
return winform.edit1.showErrorTip("请指定正确的目录","文件夹遍历程序")
}
winform.Traverse_folders.text = "停止";
thread.invoke(enumThread,winform);
}
文件操作功能
//创建文件夹
winform.Folder_creation.oncommand = function(id,event){
function isDirPath(folderpath) {
// 检查是否包含目录分隔符
if(string.find(folderpath, "[\/]")) {
return true;
}
// 检查是否有文件后缀名
if(string.find(folderpath, "\.[^\.\/]+$")) {
return false;
}
// 默认认为是目录
return true;
}
var folderpath = winform.edit1.text;
if(isDirPath(folderpath)){
var success = fsys.createDir(folderpath);
if(success){
win.msgbox('创建文件夹成功');
}else {
win.msgbox('创建文件夹失败');
}
}else {
win.msgbox('不是目录,无法创建目录')
}
}
//删除文件
winform.Delete_file.oncommand = function(id,event){
if( ! fsys.isFile( winform.edit1.text ) ){
return winform.edit1.showErrorTip("请指定正确的文件","文件删除程序")
}else{
var folderpath = winform.edit1.text;
var delete = fsys.delete(tostring(folderpath));
if(delete){
win.msgbox('删除文件成功')
}
else{
win.msgbox('删除文件失败')
}
}
}
//遍历文件
winform.View_file_content.oncommand = function(id,event){
import fsys.file
if( ! fsys.isFile( winform.edit1.text ) ){
return winform.edit1.showErrorTip("请指定正确的文件或文件为空","文件遍历程序")
}else{
if(winform.edit.text = 0){
var filepath = winform.edit1.text;
var file = fsys.file(filepath,"r");
var content = file.readAll();
winform.edit.print(content);
}
else {
winform.edit.text = ''
}
}
}
//选择文件
winform.Select_file.oncommand = function(id,event){
import fsys.dlg.dir;
winform.edit1.text = fsys.dlg.open('所有文件|*.*|文本文件|*.txt||',,winform,'请选择要遍历的文件')
}
//遍历文件夹
import fsys.dlg.dir;
winform.Directory.oncommand = function(id,event){
winform.edit1.text = fsys.dlg.dir(,winform,'请选择要遍历的文件夹')
}
//文件夹删除
winform.Delete_folder.oncommand = function(id,event){
if( ! fsys.isDir( winform.edit1.text ) ){
return winform.edit1.showErrorTip("请指定正确的文件夹","文件夹删除程序")
}else{
var folderpath = winform.edit1.text;
var delete = fsys.delete(tostring(folderpath));
if(delete){
win.msgbox('删除文件夹成功')
}
else{
win.msgbox('删除文件夹失败')
}
}
}
//创建文件
winform.Create_file.oncommand = function(id,event){
import fsys;
import fsys.file;
function isFilePath(filepath) {
// 检查是否包含目录分隔符
if(string.find(filepath, "[\/]")) {
return false;
}
// 检查是否有文件后缀名
if(string.find(filepath, "\.[^\.\/]+$")) {
return true;
}
// 默认认为是文件
return true;
}
var filepath = winform.edit1.text;
if(isFilePath(filepath)){
try {
var file = fsys.file(filepath,'w+');
file.close(); // 创建后立即关闭文件
win.msgbox('创建文件成功');
} catch(err) {
win.msgbox('创建文件失败:' ++ tostring(err));
}
}else {
win.msgbox('不是文件,无法创建文件')
}
}
win.loopMessage();
界面展示
截图aardio 新手交流学习群,一起学习的进
qq群号:697197055
微信群加我 _825720xw 拉你