基于C#实现(WinForm)文件管理系统

♻️ 资源

大小: 378KB

➡️ 资源下载: https://download.csdn.net/download/s1t16/87472202

文件管理项目

一、程序介绍

1. 目录树与文件数

复制代码
本项目主要使用了两种主要的数据结构。首先是C# WinForm所内置的TreeView树结构,主要用来实现项目的目录树。另一种是自定义的森林结构,用来存放文件系统中的所有文件夹和文本文件,以及它们之间的对应关系。以下是自定义结点的部分定义。

public Node leftChild = null;     	 //左孩子
        public Node rightBrother = null;     //右兄弟
        public Node parent = null;          //父结点
        public FCB  fcb = new FCB();        //当前结点的信息

2. FCB

复制代码
FCB主要存储了一个文件(文件夹)的主要信息,大致的内容有:文件类型、文件内容、文件大小、文件名。FCB的部分属性定义如下:

public string fileName;  //文件名
        public int size;      //文件大小
        public int type;      //文件夹还是普通文件
        public string content = "";  //文件内容

3. 新建文件夹(文本文件)

复制代码
此项目采用了"左子女,右兄弟"的森林结构,为了方便项目的实现,这里引入了一个指针currentNode始终指向当前选中的结点。当有新建的操作的时候,首先通过FCB判断是文本文件还是文件夹,若是文件夹,则在它的子树中添加一个结点;若是一个文本文件结点,就在它的兄弟树中添加一个新的结点。在插入之后,需要更新左侧的目录树。

二、使用说明

1. 页面简介

  • 左侧为文件系统目录结构树,以树型结构展示出了所有的文件夹以及文本文件。
  • 右侧是一些选项栏,可以进行格式化、新建文件夹等操作,同时可以看到程序目前的总块数和已用块数、
  • 中间上侧为一个文件路径展示标签,显示了当前文件夹的路径,可以通过按钮返回上一级。
  • 中间下侧是文件和文件夹的图形化展示区。

2. 使用说明

  • **此程序可以永久保存之前的历史值(及下一次打开的时候会展示出之前保留的文件和文件夹),这些配置信息均存在和.exe 文件相同目录下的 info.json 中。**在运行时请确认 info.json 是否在当前目录下。(若没有 info.json,程序会自动创建此文件)

  • 若想通过源代码来运行程序,首先需要 .NET Framework 4.7.2 框架,其次需要安装 NuGet 中的 Newtonsoft.Json 包以确保程序可以正确保存.json 文件。

3.操作说明

  • 按下使用说明按钮,可以查看程序的使用方法。
  • 按下格式化按钮,将清空程序中的所有内容
  • 按钮新建文件夹(文本文件)按钮,会在当前选中文件对应的目录下新建文件夹和文本文件。 需要注意的是,若当前选中的是文件夹,则会在此文件夹中创建新的条目;若当前选中的是文本文件,则会在当前目录里新建条目。
  • 按下返回上一级按钮可以返回到上一级目录(到根目录 root 之后不能再返回)。
  • 可以在左侧目录树中按下右键,进行打开、新建、重命名、删除、属性等操作。(暂时不支持在中间的可视化界面里右键文本文件或者是文件夹,还请见谅
  • 程序可以持久地保存文件系统中的内容。
  • 重命名问题:文本文件始终以.txt 结尾,在新建时可以输入同名的名称,程序会自动检测是否有重命名的情况,若有,则会自动在程序名称之后添加"_副本"来进行区别。

三、开发环境

  • 开发环境: Windows 10
  • 开发软件:Visual Studio
  • 开发语言:C#
  • 开发框架 :.NET Framework 4.7.2
相关推荐
Mr_liu_6661 小时前
ns3-gym例子解析_基础例子与wifi例子_DQN(3)
开发语言·c++·python·dqn·ns3
weixin_440730501 小时前
playwright实战-渠道应用操作
开发语言·前端·python
砚底藏山河1 小时前
存储选型实战:CSV-SQLite-MySQL同机基准(魔码量化实战 #02)
java·数据库·python·金融·maven
huaweichenai1 小时前
spring boot 打包并部署到线上服务
java·数据库·spring boot
土司大王1 小时前
LeetCode hot100——实现 Trie (前缀树)
java·算法·leetcode
陈年老古董1 小时前
Python模拟MapReduce分治思想 | 从单文件统计到大文件拆分聚合 学习笔记
开发语言·hadoop·笔记·python·学习
quantdash_cc1 小时前
数据 API 的稳定性应该如何长期监控?从量化数据监控体系到 QuantDash 实践
开发语言·python·数据分析·量化交易·股票数据·quantdash
lhldsg1 小时前
从零构建智慧场馆解决方案小程序:开发全流程实战
java·前端·小程序
小七在进步1 小时前
类和对象(一)
java·数据结构·算法