Neden 1: Dosya, bir ACL kullanıyorErişim Denetim Listesi (ACL) kullanan bir dosyayı silemeyebilirsiniz. Bu soruna geçici bir çözüm bulmak için, dosya izinlerini değiştirin. İzinleri değiştirebilmeniz için, dosyaların sahipliğini almanız gerekebilir.
Yöneticiler, dosyalar için açıkça atanmış izinleri olmasa bile, diledikleri dosyanın sahipliğini almak için örtülü bir olanağa sahiptir. Dosya sahipleri, açıkça dosyaya atanmış bir izinleri olmasa bile, dosya izinlerini değiştirmek için örtülü bir olanağa sahiptir. Bu nedenle, bir dosyanın sahipliğini almanız, kendinize dosyayı silme izinlerini vermeniz ve sonra da dosyayı silmeniz gerekebilir.
Dosya, standart olmayan bir ACL'ye sahip olduğu için, belirli güvenlik araçlarını kullanarak dosya izinlerini görüntüleyemiyor veya değiştiremiyorsunuz.Bu soruna geçici bir çözüm bulmak için, başka bir araç (örneğin, Cacls.exe dosyasının sonraki bir yapısı) kullanın.
ACL'deki Erişim Denetim Girdileri (ACE), türlerine bağlı olarak, tercih edilen belirli bir sıraya sahiptir. Örneğin, erişimi reddeden ACE'ler, tipik olarak erişim atayan ACE'lerden önce gelir. Ancak, bir programın rasgele sıralı ACE'leri bulunan bir ACL yazması engellenemez. Windows'un bazı eski sürümlerinde, Microsoft Windows bu "standart dışı" ACL'leri okumaya çalışırken sorunlar oluşuyordu. Bazı durumlarda, bu ACL'leri, Microsoft Windows Gezgini grafik güvenlik düzenleyicisini kullanarak değiştiremezsiniz. Bu sorun, sonraki Windows sürümlerinde giderilmiştir. Bu sorunla karşılaştıysanız, Cacls.exe dosyasının en güncel sürümünü kullanın. Bir ACL'yi yerinde görüntüleyemeseniz veya düzenleyemeseniz bile, dosyaya erişebilmenizi sağlayan yeni bir ACL yazabilirsiniz.
Neden 2: Dosya kullanılıyorDosya o sırada kullanılmaktaysa, dosyayı silemeyebilirsiniz. Bu soruna geçici bir çözüm bulmak için, tanımlayıcısı açık olan işlemi belirleyin ve kapatın.
Dosyanın nasıl açıldığına bağlı olarak (örneğin, paylaşılan erişim yerine özel erişim için açılmış olabilir), kullanılmakta olan bir dosyayı silemeyebilirsiniz. Dosya tanımlayıcıları açık olan işlemleri dilediğiniz zaman belirleyebilmek amacıyla çeşitli araçlar kullanabilirsiniz.
Dosya tanımlayıcıları açık olan işlemlere yardımcı olan araçlar hakkında ek bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
Neden 3: Dosya sistemi arızası nedeniyle dosyaya erişilemiyorDosya sistemi bozuksa dosyaya erişemeyebilirsiniz. Bu soruna geçici bir çözüm bulmak için, disk biriminde Chkdsk yardımcı programını çalıştırıp hataları düzeltin.
Diskteki bozuk kesimler, diğer bozuk donanımlar veya yazılım hataları nedeniyle dosya sistemi bozulabilir ve dosyaları sorunlu bir duruma sokabilir. Tipik işlemler çeşitli biçimlerde başarısız olabilir. Dosya sistemi bozulmayı algıladığında, olay günlüğüne bir olay kaydeder ve Chkdsk yardımcı programını çalıştırmanızı isteyen bir ileti alırsınız. Bozulmanın niteliğine bağlı olarak, Chkdsk yardımcı programı, dosya verilerini kurtaramayabilir; ancak Chkdsk, dosya sistemini kendi içinde tutarlı bir duruma döndürür.
Chkdsk yardımcı programını kullanma hakkında ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın:
Neden 4: Dosyalar MAX_PATH karakterden daha derin yollarda bulunuyorDosya yolunda sorunlar varsa bir dosyayı açamayabilir, düzenleyemeyebilir veya silemeyebilirsiniz.
Çözüm 1: Dosyaya erişmek için otomatik oluşturulan 8.3 adı kullanınBu soruna geçici bir çözüm bulmak için, otomatik oluşturulan 8.3 adı kullanarak dosyaya erişebilirsiniz. Bu geçici çözüm, klasör adları çok uzun olduğu için dosya yolu derinde olduğunda en kolay çözüm olabilir. 8.3 yol da çok uzunsa veya birimde 8.3 adlar devre dışı bırakılmışsa, çözüm 2'ye geçin.
NTFS birimlerinde 8.3 dosya adlarını devre dışı bırakma hakkında ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
Çözüm 2: Derin klasörü yeniden adlandırın veya taşıyınMAX_PATH değerinden daha derindeki hedef dosyalar bulunmayacak biçimde klasörü yeniden adlandırın. Bunu yaparsanız, kök klasörden (veya başka bir güvenli konumdan) başlatın ve klasörleri daha kısa adlarla yeniden adlandırın. Bu adım sorununuzu gidermezse (örneğin, bir dosya 128 klasör alttaysa), Çözüm 4'e geçin.
Çözüm 3: Bir sürücüyü yol yapısındaki bir klasöre eşleyinBir sürücüyü, hedef dosya veya klasörün yol yapısındaki bir klasöre eşleyin. Bu yöntem, sanal yolu kısaltır.
Örneğin, aşağıdaki şekilde yapılandırılmış bir yolunuz olduğunu varsayalım:
Çözüm 4: Klasörle aynı derinlikte olan bir ağ paylaşımı kullanınÇözüm 1, 2 ve 3 uygun değilse ya da sorunu gidermezse, klasör ağacıyla aynı derinlikte olan bir ağ paylaşımı oluşturun ve paylaşıma erişerek klasörleri yeniden adlandırın.
Çözüm 5: Derin yollara erişebilen bir araç kullanınBirçok Windows programı, en fazla yol uzunluğunun 255 karakterden daha kısa olmasını bekler. Bu nedenle, bu programlar bu tür tipik yolları işlemek için yalnızca yeterli iç depolamayı ayırır. NTFS'de bu sınırlama yoktur ve çok daha uzun yolları kullanabilir.
Aynı derecede derin olan klasör yapınızın bir noktasında bir paylaşım oluşturur ve paylaşımı kullanarak bu noktadan da derin bir yapı oluşturursanız, bu sorunla karşılaşabilirsiniz. Klasör ağacında yerel olan çalışan bazı araçlar, kökten başlayarak tüm ağaçta ilerleyemeyebilir. Bu araçları, paylaşıma erişebilecekleri özel bir biçimde kullanmanız gerekebilir. (CreateFile API belgesi, bu durumda tüm ağaçta ilerleme yöntemini anlatmaktadır.)
Tipik olarak, dosyaları, onları oluşturan yazılımları kullanarak yönetebilirsiniz. MAX_PATH değerinden daha derin dosyalar oluşturabilen bir programınız varsa, aynı programı kullanarak dosyaları silebilir veya yönetebilirsiniz. Bir paylaşımda oluşturulan dosyaları, aynı paylaşımı kullanarak silebilirsiniz.
Neden 5: Dosya adı, Win32 ad alanındaki bir ayrılmış adı içeriyorDosya adı Win32 ad alanındaki bir ayrılmış adı (örneğin, "lpt1") içeriyorsa, dosyayı silemeyebilirsiniz. Bu soruna geçici bir çözüm bulmak için, Win32 olmayan bir program kullanarak dosyayı yeniden adlandırın. Bir POSIX aracı veya dosyayı kullanmak için uygun iç sözdizimini kullanan başka bir araç kullanabilirsiniz.
Ayrıca, dosya yolunu belirtmek için belirli bir sözdizimi kullanıyorsanız, tipik Win32 ayrılmış ad denetimlerini atlamak için bazı yerleşik komutları da kullanabilirsiniz. Örneğin, Windows XP'de Del komutunu kullanırsanız, aşağıdaki özel sözdiziminin tam yolunu belirlediğinizde "lpt1" adlı bir dosyayı silebilirsiniz:
Bir dosya oluşturulurken gerçekleştirilen tipik ad denetimlerini, MAX_PATH değerinden daha derindeki klasörlere erişmek için kullandığınız tekniği kullanan bir Win32 programıyla atlayabilirsiniz. Ayrıca, bazı POSIX araçlarında bu ad denetimleri yapılmaz.
Neden 6: Dosya adı Win32 ad alanında geçersiz bir ad içeriyorDosya adı geçersiz bir ad ise (örneğin, dosya adında bir boşluk veya nokta varsa ya da yalnızca boşluktan oluşuyorsa), dosyayı silemeyebilirsiniz. Bu soruna geçici bir çözüm bulmak üzere, dosyayı silmek için uygun iç sözdizimini kullanan bir araç kullanın. Bazı araçlarla "\\?\" sözdizimini kullanarak, bu dosyalar üzerinde işlem yapabilirsiniz; örneğin:
Birkaç farklı nedenBazı durumlarda, bu nedenlerden birkaçı birden geçerlidir ve bu da dosyayı silme işlemini çok daha karmaşık hale getirir. Örneğin, bilgisayarın yöneticisi olarak oturum açarsanız, Neden 1 (dosyayı silme izniniz yok) ve Neden 5'in (dosya adı, erişimin farklı veya var olmayan bir dosyaya yönlendirilmesine neden olan bir karakter içeriyor) bir bileşimi nedeniyle dosyayı silemeyebilirsiniz. Dosyanın sahipliğini alıp izinler eklemek yoluyla Neden 1'e geçici bir çözüm bulmaya çalışırsanız, kullanıcı arabirimindeki ACL düzenleyicisi Neden 6 yüzünden uygun dosyaya erişemediği için dosyayı yine de silemeyebilirsiniz.
Bu durumda, Subinacl yardımcı programını /onlyfile anahtarıyla kullanıp (bu yardımcı program Kaynak Kiti'nde bulunmaktadır), normalde kabul edilmeyen dosya sahipliğini ve izinlerini değiştirebilirsiniz; örneğin:
Bu komut satırı örneği, soruna neden olan karakteri içeren C:\soruna_neden_olan_dosyanın_yolu dosyasını değiştirerek, etki_alanı\yönetici hesabının dosya sahibi olmasını ve bu hesabın dosya üzerinde tam denetime sahip olmasını sağlar. Bu dosyayı, aynı "\\?\" sözdizimiyle Del komutunu kullanarak silebilirsiniz.
Makale No: 320081 - Son İnceleme: 7 Haz 2013 - Düzeltme: 1