
Nếu bạn là một người dùng Windows cuồng nhiệt, có thể đã có lúc bạn cố xóa hoặc đổi tên một tệp trong Windows và thấy thông báo “Không thể hoàn tất hành động vì tệp đang mở trong một chương trình khác”.
Chà, hóa ra, Windows đã hiển thị lỗi này trong nhiều thập kỷ và không phải lúc nào nó cũng có nghĩa như những gì nó nói. Mark Russinovichhiện là CTO Azure và Thành viên kỹ thuật tại Microsoft, gần đây đã giải quyết vấn đề này. Russinovich, người đầu tiên gặp phải vấn đề này vào những năm 1990, đã tạo ra hai công cụ đặc biệt để giải quyết nó.

Lỗi ‘tập tin đang sử dụng’ có nghĩa là gì trong Windows?
Vâng, chính xác là như vậy, nhưng đây là cách giải thích mang tính kỹ thuật hơn. Mỗi khi một chương trình mở một tập tin, Windows sẽ tạo ra cái gọi là xử lý tập tin.
Xử lý tệp về cơ bản là một tham chiếu mà Windows sử dụng để theo dõi chương trình nào có quyền truy cập vào tệp nào tại bất kỳ thời điểm nào. Windows sẽ không cho phép bạn xóa hoặc đổi tên tệp trong khi tệp đang mở có mã điều khiển vì làm như vậy có thể làm hỏng dữ liệu mà chương trình vẫn đang làm việc.

Thông thường, khi bạn đóng một ứng dụng, Windows sẽ giải phóng các tay cầm đó. Tuy nhiên, như tất cả chúng ta đã trải qua, việc đóng ứng dụng hiển thị không phải lúc nào cũng có nghĩa là mọi điều khiển đều biến mất.
Tại sao đóng ứng dụng không phải lúc nào cũng giải phóng tệp
Russinovich xác định ba lý do phổ biến khiến tệp vẫn bị khóa sau khi bạn cho rằng mình đã đóng chương trình bằng cách sử dụng tệp đó.
- Đầu tiên, phần mềm chống vi-rút của bạn có thể đang quét tệp. Khi phần mềm chống vi-rút chạy quét, nó sẽ mở một trình xử lý tệp ở cấp hệ thống. Ngay cả khi Media Player hoặc Word đã đóng hoàn toàn, quy trình chống vi-rút vẫn có thể quét cùng một tệp ở chế độ nền và giữ tệp đó mở.
- Thứ hai, tệp có thể được tham chiếu từ một PC khác trên mạng của bạn. Nếu một thiết bị khác trên cùng mạng thực hiện thao tác mở tệp, quy trình từ xa đó có thể vẫn giữ quyền điều khiển tệp đó.
- Thứ ba và khó nhất là kịch bản DLL. Nếu tệp được đề cập được tải vào một quy trình dưới dạng DLL (Thư viện liên kết động), thì tệp đó hoàn toàn không hiển thị dưới dạng trình xử lý tệp. Thay vào đó, nó hiển thị dưới dạng tham chiếu trong bộ nhớ. Bạn sẽ không thấy bất kỳ thẻ điều khiển mở nào được liệt kê bởi các công cụ tiêu chuẩn nhưng tệp vẫn bị khóa vì nó được ánh xạ vào không gian địa chỉ của ứng dụng. Để giải phóng khóa đó, bạn phải chấm dứt toàn bộ ứng dụng được ánh xạ.
Cách tìm quy trình nào chịu trách nhiệm cho lỗi “tệp đang sử dụng”
Trở lại những năm 1990, Russinovich đã xây dựng một công cụ dòng lệnh có tên là Handle đặc biệt vì ông đã gặp phải vấn đề này. Handle là một phần của bộ Sysinternals, một bộ tiện ích Windows nâng cao mà Microsoft hiện đang duy trì.
Đang chạy Xử lý từ dấu nhắc lệnh của quản trị viên hiển thị mọi xử lý tệp đang mở trên hệ thống, cùng với tên quy trình và ID chịu trách nhiệm cho từng xử lý. Bạn có thể tìm kiếm một tên tệp cụ thể để đi thẳng vào câu trả lời.
Trình khám phá quy trình là người bạn đồng hành về mặt đồ họa. Nó cũng được xây dựng bởi Russinovich và như chúng tôi đã lưu ý trong phần đưa tin trước đây về việc Microsoft thừa nhận rằng Windows 11 vẫn được xây dựng trên Win32 từ những năm 90, bản thân Russinovich cho biết ông sẽ đặt cược vào việc các công cụ Sysiternals của riêng mình vẫn còn phù hợp vào năm 2026. Tuy nhiên, chúng ta vẫn ở đây và Process Explorer vẫn là một trong những công cụ chẩn đoán thiết thực nhất hiện có trên Windows.

Bên trong Process Explorer, nhấn Ctrl + Shift + F mở cửa sổ tìm kiếm Find Handle hoặc DLL. Nhập tên của tệp bị khóa sẽ hiển thị quá trình nào đã mở. Từ đó, bạn có thể nhấp chuột phải vào quy trình và đóng trực tiếp tay cầm hoặc chấm dứt quy trình trước khi thử xóa lại.

Sysiternals trong PowerToys, tùy chọn dễ dàng hơn cho người dùng thông thường
Nếu dòng lệnh có vẻ quá nhiều, Microsoft có một lựa chọn thân thiện hơn. Như Windows mới nhất đã báo cáo vào năm 2024, chính Mark Russinovich đã đề xuất tích hợp các công cụ Sysinternals vào PowerToys và ý tưởng đó đã thu hút được nhiều sự chú ý.

PowerToys đã bao gồm Thợ khóa hồ sơmột công cụ cho phép bạn nhấp chuột phải vào tệp, chọn ‘Mở khóa bằng Thợ khóa tệp’ và xem ngay danh sách mọi quy trình đang mở tệp đó. Bạn có thể kết thúc quá trình vi phạm từ cùng một cửa sổ và sau đó xóa tệp mà không cần đến gần dòng lệnh.
Giải pháp mà Microsoft khuyến nghị khắc phục lỗi “file in use”
Russinovich cũng chia sẻ cách giải quyết thực tế trong video bạn có thể xem ở trên. Nếu bạn không thể kết thúc ngay quá trình lưu giữ một tập tin, bạn có thể đổi tên tập tin thay vì xóa nó. Windows cho phép bạn đổi tên tệp ngay cả khi nó được mở trong một số ngữ cảnh.
Sau khi đổi tên, bạn có thể thả một bản sao mới của tệp có tên gốc vào cùng một vị trí và bất kỳ quy trình nào khác cần nó sẽ chọn phiên bản mới. Sau đó, bản sao cũ đã được đổi tên có thể bị xóa sau khi quá trình giữ nó cuối cùng đã giải phóng tay cầm của nó.
Vấn đề này đã tồn tại từ lâu kể từ khi hệ điều hành này tồn tại. Ít nhất bây giờ chúng tôi đã khiến Microsoft phải thừa nhận điều đó cùng với lời giải thích thực tế.
Russinovich đã dành nhiều thập kỷ để xây dựng các công cụ để hiển thị những gì Windows che giấu khỏi tầm nhìn rõ ràng và thực tế là những công cụ đó vẫn cần thiết vào năm 2026 đã nói lên nhiều điều về mức độ nghiêm trọng của vấn đề cụ thể này trong HĐH.


