Python文件管理器设计报告
项目名称:Python文件管理器
开发者:杨磊
班级:计科1403
联系方式:ylxx@live.com
项目目的和介绍
======
作为一个计算机重度使用者,硬盘空间经常处于紧张状态,特别是C:\盘,C:\盘在固态硬盘上,无法扩展,而且C:\盘下的文件结构多而混乱,通常我会定期清理磁盘,但有以下问题:
Windows资源管理器并不能提供文件夹大小的显示和排序,让我管理不方便
我还经常使用CMD命令 “tree”来查看文件夹结构,然而,tree命令过于简陋,无法满足我的需求。
且CMD命令下输入文件名长的文件或文件夹是十分痛苦的(例如名字超长的电影文件),我也想解决这个输入体验的问题
综上,这次课设我打算开发一个有特色功能的Python版资源管理器,以满足以上需求
功能设计
====
实现基本的CMD文件操作
可以默认显示文件夹大小
漂亮的展示文件夹的树形结构
可用编号代替文件名进行操作
可保存检索和工作进度
可直接在管理器中打开文件
注[1]:复制和剪切功能将在后续版本加入
注[2]:后续版本将添加图形界面
核心思路
=====
###1. 开发语言
由于Python语言应用性强,数据处理方便,开发周期短等优点,以及此项目对性能要求不高,瓶颈多为I/O操作,所以最终选择了Pyhton 2.7来开发此项目
###2. 用户使用逻辑
st=>start: Start:>https://www.zybuluo.com
op=>operation: 初始界面
cond=>condition: 是否载入进度?
sub=>operation: 载入工作进度
e=>end
op1=>operation: 由路径创造结构体
io2=>operation: 输入新的指令
io=>inputoutput: 输入指令
cond2=>condition: 是否为q?
op3=>operation: 初始界面2
st->op->cond
cond(no)->op1
cond(yes)->sub->io
op1->io->cond2->
sub2=>subroutine: 执行对应指令
cond2(yes)->e
cond2(no)->sub2(right)->io
###3. 问题的抽象
>要想知道文件夹的大小,就必须要知道文件夹下所有文件的大小,再相加
>文件夹与其下的文件的关系为树形关系
>因此,抽象数据结构为树,将路径下文件的树形结构和数据结构的树要一一对应
>由于我们主要目的是查看大小,因此还应在结构体中加入大小的数据
###3. 数据结构
由于文件夹本来就是一种树形结构,因此我考虑的是使用Python中的字典数据类型来表示的广义表,来表示树
用键表示文件名,其值为一个字典,字典的内容是文件的属性
如一个1KB的文件的节点表示为:
'文件名':{'size':1024}
如一个空文件夹的节点则表示为:
'文件夹名':{'file':{},'size':0}(键'