filelocksmith

Crates.iofilelocksmith
lib.rsfilelocksmith
version0.1.4
sourcesrc
created_at2024-08-02 21:42:44.988261
updated_at2024-09-27 19:44:54.98938
descriptionDetect what processes are locking a file or folder on Windows
homepagehttps://github.com/velopack/filelocksmith-rs
repositoryhttps://github.com/velopack/filelocksmith-rs
max_upload_size
id1323775
size67,751
Caelan (caesay)

documentation

https://docs.rs/filelocksmith

README

filelocksmith-rs

Version License Documentation

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++.

Further documentation at https://docs.rs/filelocksmith

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");
}
Commit count: 23

cargo fmt