丰富目录树功能

This commit is contained in:
2026-07-10 11:27:11 +08:00
parent 997cb7fdf1
commit d56b7d52bf
9 changed files with 567 additions and 12 deletions

View File

@@ -190,6 +190,42 @@ fn pick_save_file(app: tauri::AppHandle) -> Option<String> {
.map(|p| p.to_string())
}
#[tauri::command]
fn create_folder(path: String) -> Result<(), String> {
fs::create_dir_all(&path).map_err(|e| format!("无法创建文件夹: {}", e))
}
#[tauri::command]
fn create_file(path: String) -> Result<(), String> {
if let Some(parent) = PathBuf::from(&path).parent() {
fs::create_dir_all(parent).map_err(|e| format!("无法创建父目录: {}", e))?;
}
fs::write(&path, "").map_err(|e| format!("无法创建文件: {}", e))
}
#[tauri::command]
fn delete_entry(path: String) -> Result<(), String> {
let p = PathBuf::from(&path);
if p.is_dir() {
fs::remove_dir_all(&p).map_err(|e| format!("无法删除文件夹: {}", e))
} else if p.is_file() {
fs::remove_file(&p).map_err(|e| format!("无法删除文件: {}", e))
} else {
Err("路径不存在".to_string())
}
}
#[tauri::command]
fn rename_entry(path: String, new_name: String) -> Result<String, String> {
let p = PathBuf::from(&path);
let parent = p
.parent()
.ok_or_else(|| "无法获取父目录".to_string())?;
let new_path = parent.join(&new_name);
fs::rename(&p, &new_path).map_err(|e| format!("无法重命名: {}", e))?;
Ok(new_path.to_string_lossy().to_string())
}
#[tauri::command]
fn greet(name: &str) -> String {
format!("Hello, {}! You've been greeted from Rust!", name)
@@ -209,7 +245,11 @@ pub fn run() {
write_file,
watch_workspace,
unwatch_workspace,
pick_save_file
pick_save_file,
create_folder,
create_file,
delete_entry,
rename_entry
])
.setup(|app| {
// ---- File menu ----