基于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
相关推荐
2601_9621066421 小时前
【Java Set综合实战】商品管理系统 + 图书收藏系统|Product、Book自定义类全套代码
java
RuoyiOffice1 天前
SpringBoot+Vue3 凭证生命周期设计:审核、过账、冲销与反过账怎样保持账目一致
java·spring boot·事务·springboot3·财务系统·会计凭证·ruoyi office
2601_962106641 天前
HashMap入门|工号-姓名键值存储、两种遍历方式、根据key/value查
java
czq_26867194871 天前
Python打卡第46天
开发语言·python
杨凯凡1 天前
Spring Framework 7 API 版本管理实战:请求头路由、兼容迁移与废弃策略
java·rest api·springframework·spring boot 4·api版本管理
T_Wizard1 天前
同一个问题写了 4 遍:官方 SDK / HTTP / Spring AI / LangChain4j,到底该选哪个
java·ai编程
hai_android1 天前
AudioTrack 深度解析:从原理到实战
android·java·kotlin
斯维赤1 天前
限流、熔断、降级,你真的分得清吗?
java·后端·架构
Evand J1 天前
【MATLAB例程介绍】(17)永磁同步电机(PMSM)基于自适应无迹卡尔曼滤波(AUKF)的电流噪声在线估计。测量噪声协方差自适应与转速估计对比仿真
开发语言·matlab·卡尔曼滤波·无迹卡尔曼滤波·pmsm·电机滤波
Coder_Shenshen1 天前
罗克韦尔ACD工程归档离线变量树解析
算法·c#