# file-system **Repository Path**: lolikiller666/file-system ## Basic Information - **Project Name**: file-system - **Description**: 一个用Rust语言实现的简单的文件系统 - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-09 - **Last Updated**: 2025-12-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 简单文件系统 - GUI 和 CLI 界面 这是一个具有 GUI(图形用户界面)和 CLI(命令行界面)的文件系统应用程序,允许您以不同方式与文件系统进行交互。 ## 前提条件 - Rust 编程语言(1.70 或更高版本) - Cargo 包管理器 ## 安装 1. 克隆或下载项目仓库 2. 导航到项目根目录: ```bash cd /path/to/file-system ``` 3. 构建项目: ```bash cargo build ``` ## 运行项目 该项目提供了多种与文件系统交互的界面: ### 1. 图形用户界面 (GUI) - 默认 默认情况下,应用程序将使用 GUI 界面启动: ```bash cargo run ``` 这将打开一个图形文件资源管理器窗口,您可以使用视觉界面与文件系统进行交互。 ### 2. 交互式命令行界面 (CLI) 要启动交互式 CLI 界面,请使用: ```bash cargo run -- --cli ``` 这将启动一个提示符,您可以在其中交互式地输入命令。 #### 交互式 CLI 中可用的命令 进入交互式 CLI 后,您可以使用以下命令: ```bash # 格式化文件系统(警告:这将删除所有数据) format # 列出指定路径中的文件和目录(默认:当前目录) dir [path] # 创建目录(支持递归/级联创建) mkdir # 创建新文件 create # 向文件写入内容(交互模式) write # 读取文件内容 read # 删除文件 del # 重命名文件 rename # 删除空目录 rmdir # 重命名目录 rndir # 退出交互式 CLI exit 或 quit # 显示可用命令 help ``` #### 交互式 CLI 示例 ```bash # 启动交互式 CLI $ cargo run -- --cli # 列出根目录中的文件和目录 > dir Contents of /: file.txt (file) documents (directory) # 创建新文件 > create hello.txt # 向文件写入内容 > write hello.txt Enter content (press Ctrl+D on Linux/macOS or Ctrl+Z on Windows to finish): Hello, World! This is a test file. # 读取文件内容 > read hello.txt Hello, World! This is a test file. # 递归创建目录(级联创建) > mkdir a/b/c # 在嵌套目录中创建文件 > create a/b/c/note.txt # 列出嵌套目录中的文件 > dir a/b/c Contents of /a/b/c: note.txt (file) # 重命名文件 > rename hello.txt greeting.txt # 删除文件 > del greeting.txt # 删除空目录 > rmdir a/b/c # 退出交互式 CLI > exit ``` ### 3. 直接命令行界面 使用专用的 CLI 界面直接从终端运行单个命令: ```bash cargo run --bin cli [arguments] ``` ## 可用命令 ### 格式化文件系统 ```bash cargo run --bin cli format ``` ### 列出文件 ```bash cargo run --bin cli dir [path] ``` ### 创建目录(支持递归/级联创建) ```bash cargo run --bin cli mkdir ``` 递归创建示例: ```bash cargo run --bin cli mkdir a/b/c ``` ### 创建文件 ```bash cargo run --bin cli create ``` 示例: ```bash cargo run --bin cli create test.txt ``` ### 向文件写入内容 通过 stdin 向文件写入内容: ```bash echo "Hello, World!" | cargo run --bin cli write ``` 示例: ```bash echo "Hello, World!" | cargo run --bin cli write test.txt ``` 您也可以写入多行内容: ```bash echo -e "Line 1\nLine 2\nLine 3" | cargo run --bin cli write test.txt ``` ### 读取文件 ```bash cargo run --bin cli read ``` 示例: ```bash cargo run --bin cli read test.txt ``` ### 删除文件 ```bash cargo run --bin cli del ``` 示例: ```bash cargo run --bin cli del test.txt ``` ### 重命名文件 ```bash cargo run --bin cli rename ``` 示例: ```bash cargo run --bin cli rename test.txt new_test.txt ``` ### 删除空目录 ```bash cargo run --bin cli rmdir ``` 示例: ```bash cargo run --bin cli rmdir my_folder ``` ### 重命名目录 ```bash cargo run --bin cli rndir ``` 示例: ```bash cargo run --bin cli rndir documents docs ``` ## 重要特性 ### 递归目录创建 `mkdir` 命令支持递归/级联创建目录。这意味着您可以使用单个命令创建嵌套目录: ```bash # 这将递归创建目录 a、a/b 和 a/b/c mkdir a/b/c ``` ### 数据持久性 - 文件系统数据存储在项目根目录的 `disk.img` 中 - 所有操作在程序运行之间都是持久的 - 块大小为 4096 字节 ## 命令行选项 - `--cli` 或 `-c`:以 CLI 模式启动应用程序,而不是 GUI 模式 ## 注意事项 - 应用程序现在默认使用 GUI 界面,但您仍然可以使用 `--cli` 参数或专用的 `cli` 二进制文件访问 CLI 界面 - 使用交互式 CLI 时,`write` 命令进入多行模式,您可以在其中输入文本,直到按下 Ctrl+D(Linux/macOS)或 Ctrl+Z(Windows) - `format` 命令将删除文件系统中的所有数据,请谨慎使用