Bạn phải tìm hiểu xem chương trình nào đang truy cập tệp. Bạn đã quên thoát khỏi một trong các ứng dụng của riêng mình hay đang truy cập vào tệp nào khác?
Bạn có thể viết mã C# để giết một quá trình, nhưng cách tiếp cận tốt hơn là tìm hiểu lý do tại sao nó đang được sử dụng bởi một quy trình khác.
Để giết tất cả các quá trình với tên nameOfProcess trong C#:
Process[] ps = Process.GetProcessesByName("nameOfProcess");
foreach (Process p in ps)
p.Kill();
Ngoài ra, như ghi chú @Darin, bạn có thể có một cái nhìn tại này khác SO chủ đề: How do I find out which process is locking a file using .NET?
Các Sysinternals công cụ được đề cập bởi @Darin trong các nhận xét được tìm thấy tại http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx
Để tìm hiểu lúc đầu, người đang khóa tệp của bạn, bạn nên xem xét ProcessMonitor từ sysinternals. Chỉ cần nhấp vào Spyglass trên thanh công cụ và nhập tên tệp của bạn. Bạn nhận được một danh sách tất cả các quy trình có một xử lý mở cho tệp này. – Oliver