Windows’ta bir dosyayı silmeye ya da yeniden adlandırmaya çalışırken karşıya çıkan “dosya kullanımda” uyarısı, yıllardır kullanıcıların canını sıkan hatalardan biri olmaya devam ediyor. İlginç olan nokta ise bu konunun Microsoft içinde de hâlâ gündemde olması. Azure CTO’su ve aynı zamanda Sysinternals araçlarının arkasındaki isim olan Mark Russinovich, Microsoft Developer YouTube kanalında yayımlanan kısa bir videoda bu uyarının arkasındaki mantığı anlattı.
Russinovich’e göre Windows’ta bir uygulama dosya açtığında sistem o dosya için bir file handle oluşturuyor. Bu yapı, hangi işlemin hangi dosyaya eriştiğini takip etmek için kullanılıyor. Dosya üzerinde açık bir handle varken Windows, veri bozulmasını önlemek için silme veya yeniden adlandırma isteğini engelleyebiliyor.
Ancak sorun şu: Uygulamayı kapatmış olmanız, her zaman dosya bağlantısının tamamen koptuğu anlamına gelmiyor. Russinovich burada üç yaygın senaryoya dikkat çekiyor. İlki, antivirüs yazılımının dosyayı arka planda taramaya devam etmesi. İkincisi, dosyanın ağ üzerindeki başka bir bilgisayar tarafından kullanılıyor olması. Üçüncüsü ise daha karmaşık bir durum: Dosyanın bir DLL olarak belleğe eşlenmiş olması. Böyle bir senaryoda standart araçlar açık dosya bağlantısını doğrudan göstermeyebiliyor, fakat dosya yine de kilitli kalıyor.
Bu tür durumları tespit etmek için Russinovich’in yıllar önce geliştirdiği Sysinternals araçları hâlâ kullanılıyor. Bunlardan Handle, komut satırında hangi işlemin ilgili dosyayı tuttuğunu gösterebiliyor. Process Explorer ise bunun grafik arayüzlü karşılığı. Microsoft’un resmi açıklamasına göre Process Explorer, süreçlerin açtığı handle’ları, yüklediği DLL’leri ve bellek eşlemeli dosyaları görüntüleyebiliyor. Arama özelliği sayesinde belirli bir dosyanın hangi işlem tarafından kullanıldığını bulmak da mümkün.
Daha pratik bir çözüm isteyen kullanıcılar için PowerToys içindeki File Locksmith aracı da öne çıkıyor. Bu araç, dosyaya sağ tıklayıp hangi sürecin kilit oluşturduğunu görmeyi ve gerekirse ilgili işlemi kapatmayı kolaylaştırıyor.
Russinovich videoda bir geçici çözümden de söz ediyor. Eğer dosyayı tutan süreci hemen sonlandıramıyorsanız, bazı durumlarda dosyayı silmek yerine önce yeniden adlandırmak işe yarayabiliyor. Ardından aynı konuma yeni bir kopya bırakılabiliyor. Eski dosya ise onu kullanan işlem bağlantıyı bıraktığında silinebiliyor.
Kısacası “dosya kullanımda” uyarısı basit bir hata mesajından ibaret değil. Arka planda çalışan antivirüs süreçlerinden ağ erişimine, DLL kullanımından sistem içi handle yönetimine kadar farklı nedenler bu duruma yol açabiliyor. Microsoft cephesinden gelen son açıklama da, Windows’taki bu eski sorunun neden hâlâ karşımıza çıktığını daha anlaşılır hale getiriyor.
Kaynak: www.techspot.com
