丰富目录树功能
This commit is contained in:
@@ -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 ----
|
||||
|
||||
Reference in New Issue
Block a user