Expand description
§filelocksmith-rs
Reliably find and quit processes that are locking a file or folder on Windows. This is a difficult problem to solve on Windows, as the OS does not provide a built-in or straight-forward way to do this.
Additionally, unlike *nix, files and folders can not be deleted or moved while they are locked by a process.
This library wraps the FileLocksmith module from the Microsoft PowerToys project, which is written in C++.
§Installing
[dependencies]
filelocksmith = "0.1"
§Usage
use filelocksmith::{find_processes_locking_path, quit_processes, pid_to_process_path};
let path = "C:\\path\\to\\file.txt";
let pids = find_processes_locking_path(path);
// print paths of processes locking the file
for pid in &pids {
println!("[{}] {:?}", pid, pid_to_process_path(*pid));
}
// quit the processes locking the file
if quit_processes(pids) {
println!("Processes quit successfully");
}
Functions§
- find_
processes_ locking_ path - Find processes locking a file or folder. Returns a list of process IDs.
- is_
process_ elevated - Returns true if the current process is running as administrator.
- pid_
to_ process_ path - Returns the full path of a process given its process ID. If the process is not found, or we do not have permission to access the process, this function will return None.
- quit_
processes - Quits processes given a list of process IDs. Returns true if all processes were quit successfully, or there were no processes to quit. If one or more processes could not be quit, this function will return false.
- set_
debug_ privilege - Sets the SeDebugPrivilege for the current process. Returns true if successful.