mirror of
https://github.com/LHY0125/PathEditor.git
synced 2026-06-29 01:37:22 +08:00
refactor: backup.rs — use 语句移至文件顶部,注册表路径复用常量
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
use chrono::Local;
|
use chrono::Local;
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
|
use winreg::enums::*;
|
||||||
|
use crate::commands::registry::{self, SYS_REG_PATH, USER_REG_PATH};
|
||||||
|
|
||||||
fn backup_base_dir() -> PathBuf {
|
fn backup_base_dir() -> PathBuf {
|
||||||
dirs::data_dir()
|
dirs::data_dir()
|
||||||
@@ -19,9 +21,6 @@ pub fn get_appdata_dir() -> String {
|
|||||||
/// 在保存前调用,备份的是注册表中的当前值(保存前的状态)
|
/// 在保存前调用,备份的是注册表中的当前值(保存前的状态)
|
||||||
#[tauri::command]
|
#[tauri::command]
|
||||||
pub fn backup_registry(custom_dir: Option<String>) -> Result<String, String> {
|
pub fn backup_registry(custom_dir: Option<String>) -> Result<String, String> {
|
||||||
use crate::commands::registry;
|
|
||||||
use winreg::enums::*;
|
|
||||||
|
|
||||||
let backup_dir = match custom_dir {
|
let backup_dir = match custom_dir {
|
||||||
Some(ref dir) if !dir.is_empty() => std::path::PathBuf::from(dir),
|
Some(ref dir) if !dir.is_empty() => std::path::PathBuf::from(dir),
|
||||||
_ => backup_base_dir(),
|
_ => backup_base_dir(),
|
||||||
@@ -33,12 +32,12 @@ pub fn backup_registry(custom_dir: Option<String>) -> Result<String, String> {
|
|||||||
// 读取当前注册表中的值(保存前的旧值)
|
// 读取当前注册表中的值(保存前的旧值)
|
||||||
let sys_paths = registry::load_paths(
|
let sys_paths = registry::load_paths(
|
||||||
HKEY_LOCAL_MACHINE,
|
HKEY_LOCAL_MACHINE,
|
||||||
"SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment",
|
SYS_REG_PATH,
|
||||||
"系统",
|
"系统",
|
||||||
)?;
|
)?;
|
||||||
let user_paths = registry::load_paths(
|
let user_paths = registry::load_paths(
|
||||||
HKEY_CURRENT_USER,
|
HKEY_CURRENT_USER,
|
||||||
"Environment",
|
USER_REG_PATH,
|
||||||
"用户",
|
"用户",
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
use winreg::enums::*;
|
use winreg::enums::*;
|
||||||
use winreg::RegKey;
|
use winreg::RegKey;
|
||||||
|
|
||||||
const SYS_REG_PATH: &str = "SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment";
|
pub(crate) const SYS_REG_PATH: &str = "SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment";
|
||||||
const USER_REG_PATH: &str = "Environment";
|
pub(crate) const USER_REG_PATH: &str = "Environment";
|
||||||
const PATH_VALUE: &str = "Path";
|
pub(crate) const PATH_VALUE: &str = "Path";
|
||||||
|
|
||||||
pub(crate) fn load_paths(root: winreg::HKEY, sub_path: &str, label: &str) -> Result<Vec<String>, String> {
|
pub(crate) fn load_paths(root: winreg::HKEY, sub_path: &str, label: &str) -> Result<Vec<String>, String> {
|
||||||
let key = RegKey::predef(root);
|
let key = RegKey::predef(root);
|
||||||
|
|||||||
Reference in New Issue
Block a user