Program Files, AppData ve ProgramData'da kalan sahipsiz klasörleri elle bulmak

Sahipsiz klasörler Windows'ta üç ayrı evde kalır: kurulumun gövdesini bıraktığı C:Program Files (64 bit sistemlerde 32 bit uygulamalar için C:Program Files (x86)), kullanıcıya özel verinin durduğu C:Users<kullanıcı adı>AppData ağacı ve makine genelindeki C:ProgramData. Elle arama yaparken izlenecek en sağlam yol, kaldırma gününü bir yere not etmek, bu üç konumu Dosya Gezgini'nde açıp "Değiştirilme tarihi" sütununu görünür hale getirmek ve o tarihte donup kalmış klasörleri ayırmaktır; çünkü hâlâ kullanılan bir klasör tarihini ileri taşımayı sürdürür. Sıra da buna göre kurulur: önce Program Files, sonra AppData, en son ProgramData.

Akşam evde dizüstünün ekranını göz hizasına getiriyorum, görev çubuğundaki sarı klasör simgesine tıklıyorum. Adres çubuğuna C:Program Files yazıp Enter'a basıyorum. Karşıma harf sırasına dizilmiş bir liste çıkıyor: tanıdık isimler, bir o kadar da yabancı isim. Sütun başlıklarından birine sağ tıklayıp "Değiştirilme tarihi"ni işaretliyorum, sonra o başlığa bir kez tıklıyorum. Liste alfabetik düzenden çıkıp zamana göre diziliyor ve en dipte, yıllar öncesine ait küçük bir grup klasör kalıyor. Bu yazı o grubu, henüz hiçbir şeye dokunmadan tanımak için.

Çünkü ilk denememde en dipte kalan her klasöre sahipsiz gözüyle baktım ve yanıldım. Bir tanesi bir yazıcı sürücüsünün bileşeniydi, bir tanesi bir oyunun birlikte kurduğu yardımcı katman, bir tanesi de başka bir programın yanında gelen sessiz bir servisti. O günden sonra kuralımı değiştirdim: silme kararı en sonda, tanıma işi en başta.

İlk ev: Program Files, kurulumun gövdesi

Burası kurulumun kendisini bıraktığı yer. Bir programı kaldırdığınızda kaldırıcı çoğu zaman bu klasörü de götürür; götürmediğinde ise geride kalan şey genelde boş bir kabuk ya da içinde sürüm numarası taşıyan bir alt klasör olur. Aradığım ilk işaret bu: klasörün adı, içinde duran alt klasörün adıyla birlikte bir ürünü işaret ediyor mu?

Eşleştirmeyi gözle yapıyorum. Ayarlar > Uygulamalar > Yüklü uygulamalar listesini açıp klasör adını oradaki isimlerle karşılaştırıyorum. Bu liste ürün adını verir; yayıncı adını görmek istediğimde Denetim Masası > Programlar ve Özellikler'e geçiyorum, çünkü "Yayıncı" sütunu orada duruyor. Klasör adı bir yayıncı adıysa (tek bir isim, altında birden fazla ürün) tek bakışta "bu sahipsiz" demiyorum; içine bir seviye inip hangi ürünlerin durduğuna bakıyorum. Hâlâ kurulu bir ürün oradaysa o klasör sahipsiz değil, sadece kalabalık.

Bir de sessiz durum var: ne ürün listesinde ne yayıncı listesinde karşılığı olmayan bir klasör. Bu "artık" demek değil, "bilinmiyor" demek. Sürücüler, oyunların birlikte getirdiği bileşenler ve başka bir kurulumun yanında gelen yardımcılar burada isimsiz durabiliyor.

İkinci ev: AppData, kullanıcıya özel üç dal

AppData varsayılan olarak gizli. Görünüm sekmesinde "Göster" altındaki "Gizli öğeler" kutusunu işaretleyince görünür oluyor; Windows 10'da aynı kutu Görünüm şeridinde tek başına duruyor, Windows 11'de alt menüye inmiş durumda. Ama her seferinde klasörleri karıştırmanın anlamı yok: adres çubuğuna %appdata% yazıp Enter'a bastığınızda doğrudan Roaming'e, %localappdata% yazdığınızda Local'e düşüyorsunuz. Benim elim en çok bu kısayola gidiyor.

Üç dalın üçü farklı soru soruyor.

Local, makineye bağlı önbelleklerin yeri: güncelleme paketleri, tarayıcı profilleri, büyük geçici dosyalar. Bir program her açılışta buraya yazdığı için klasörün tarihi sürekli ileri gider. Sahipsiz bir klasör ise kaldırma gününde çakılı kalır.

Roaming, adı üstünde, kullanıcıyla birlikte taşınması düşünülen küçük ayar dosyalarının yeri. Burada klasör adları çoğu zaman yayıncı değil ürün adıdır, bazen de yayıncının altında ürün diye iç içe durur.

LocalLow ise az bilinen dal: düşük bütünlükte çalışan süreçlerin, korumalı modda açılan tarayıcı eklentilerinin, bazı oyunların bıraktığı izlerin yeri. Kaldırma sonrası en sık gözden kaçan kalıntı burada duruyor, çünkü insanlar iki dalı görüp üçüncüyü hiç açmıyor.

Bir uyarı: Local içindeki Packages klasörü ayrı bir dünyadır. Oradaki isimler Microsoft.WindowsCalculator_8wekyb3d8bbwe gibi paket ailesi biçimindedir ve Mağaza uygulamalarına aittir. Bunları sahipsiz klasör gibi okumayın; listede karşılığı görünmüyorsa bile orada olmaları normaldir.

Üçüncü ev: ProgramData, makinenin ortak dolabı

C:ProgramData de gizli bir kök klasör. Adres çubuğuna doğrudan yazdığınızda açılır, gizli olması sizi durdurmaz. Buradakiler kullanıcıya değil makineye ait: lisans dosyaları, güncelleme önbellekleri, birlikte kullanılan varlıklar, antivirüs tanım dosyaları.

Buradaki en yaygın tuzak, yayıncı adı taşıyan tek bir klasörün birden fazla ürüne hizmet etmesi. Silmeye niyetlendiğiniz klasörün bir seviye altında hâlâ kurulu olan başka bir ürünün adını görürseniz, doğru birim klasörün tamamı değil, o alt klasördür. Bir de tersi var: düzenli olarak kendini yenileyen tanılama klasörleri. Tarihleri durmadan ileri gider, çünkü onları yazan bir şey hâlâ çalışıyor. Tarih onlar için sahipsizlik değil, hayatta olma işareti.

Tarih sütunu ne söyler, ne söylemez

Bu yöntemin sağlamlığı, klasör tarihinin nasıl işlediğini bilmeye dayanıyor. Bir klasörün değiştirilme tarihi, içine doğrudan bir öğe eklendiğinde, silindiğinde ya da adı değiştiğinde güncellenir. Derinlerde bir dosyanın içeriği değiştiğinde çoğu zaman kıpırdamaz. Yani tarih sütunu size "bu klasörün üst katında son zamanlarda bir hareket oldu mu" sorusunun cevabını verir, "içindeki her şey eski mi" sorusunun değil.

Bu yüzden tek bir tarihe bakıp karar vermiyorum. Üç izi birlikte okuyorum: oluşturulma tarihi, değiştirilme tarihi ve ürün listesindeki karşılığı. Erişim tarihini hesaba katmıyorum, çünkü birçok sistemde bu kayıt kapalı geliyor ve açık olsa bile arka planda çalışan bir dizin taraması onu yanıltıcı biçimde tazeliyor.

Güven seviyelerini kendime göre ayırıyorum. Kaldırma tarihimde donmuş, ürün listesinde karşılığı olmayan, adı bir sürücüye ya da servise benzemeyen bir klasör yüksek güven veriyor. Bu üç şarttan biri eksikse karar "muhtemelen" seviyesinde kalıyor ve ben muhtemelenle iş yapmıyorum.

Karar verirken elinizin altında olanlar

Program Files altındaki bir klasöre dokunduğunuzda Windows kendi izin penceresini açar; yönetici onayı istediğini siz ayrıca ayarlamazsınız, Dosya Gezgini talep eder. O pencere bana her zaman son bir kontrol fırsatı gibi geliyor: üzerinde yazan klasör adı, birazdan ne yapacağımı tekrar söylüyor.

Karar birimi klasör, dosya değil. Bir programın klasörünün içine girip tek tek dosya ayıklamak, çalışan bir uygulamayı yarım bırakmanın en kısa yolu. Ya klasörün tamamı gider ya hiçbiri.

Emin değilsem hiçbir şey yapmıyorum. Bu kalıntıların çoğu birkaç megabayt bile değil; asıl kazanç disk alanı değil, bir dahaki sefere aynı listeye baktığımda ne gördüğümü bilmek. Test etmek istediğimde ise silmek yerine klasörün adının sonuna bir ek koyup bir hafta bekliyorum. Bir şey bozulursa adı geri almak yeterli oluyor, bozulmazsa karar zaten kendini vermiş oluyor.

Bütün bu işin özü şu: hangi klasörün hangi evde durduğunu bilmek, hangi soruyu sorduğunuzu bilmek demek. Program Files'da "kurulumun gövdesi burada mı kaldı", AppData'da "bu kullanıcının ayarları hâlâ burada mı", ProgramData'da "bu makinenin ortak verisi kimin için duruyor" sorusunu soruyorsunuz. Bu üç soruyu ayırdığınız anda liste kısalmıyor ama gürültü azalıyor; geriye karar verilebilir birkaç satır kalıyor.

Kapağı Açmayanlar

Yazar hakkında

Kapağı Açmayanlar

Kapağı Açmayanlar, Bayrak Kontrol'ün arkasındaki topluluk. Cihazının kasasını hiç açmamış, sorunlarını yalnızca ekrandaki araçlarla çözmüş kişilerin ortak imzası. Görev yöneticisini, depolama ekranını ve ayarlar menüsünü kurcalayarak hangi müdahalenin neyi değiştirdiğini kendi cihazlarında görmüşler; bir ayarı değiştirmeden önce geri nasıl alınacağını öğrenmeyi alışkanlık edinmişler.

Bizi tanıyın