Dizin ile dizin silinemiyor.Sil(doğru yol)
Kullanıyorum .NET yinelemeli olarak kullanarak bir dizini silmeye çalışırken 3.5,:
Directory.Delete(myPath, true);
Benim anladığım bu dosya kullanımda veya izinleri ile ilgili bir sorun varsa atmak gerekir, ancak aksi takdirde dizin ve tüm içeriğini silmek gerekir.
Ancak, ben zaman zaman şunu dinle:
System.IO.IOException: The directory is not empty.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.Directory.DeleteHelper(String fullPath, String userPath, Boolean recursive)
at System.IO.Directory.Delete(String fullPath, String userPath, Boolean recursive)
...
Bu yöntem bazen atar şaşırmadım, ama özyinelemeli doğru olduğunda bu özel mesaj almak beni şaşırttı. (Benbiliyorumdizin boş değil.)
AccessViolationException yerine bunu görmek istiyorum bir nedeni var mı?
CEVAP
Bu sorunla daha önce karşılaştım.
Sorunun kökü bu fonksiyon, dizin yapısı içinde olan dosyaları silmez. Bunu yapmak için neye ihtiyacınız dizin yapısını sonra dizinin kendisi çıkarmadan önce tüm dizinlerin içindeki tüm dosyaları silen bir fonksiyon oluşturun. Bu ikinci parametre aykırı olduğunu biliyorum ama çok daha güvenli bir yaklaşım. Buna ek olarak, muhtemelen onları silmeden önce bu dosyaları salt OKUNUR erişim öznitelikleri kaldırmak isteyeceksiniz. Aksi halde bir özel durum oluşturmak.
Sadece tokat bu projenize kod.
public static void DeleteDirectory(string target_dir)
{
string[] files = Directory.GetFiles(target_dir);
string[] dirs = Directory.GetDirectories(target_dir);
foreach (string file in files)
{
File.SetAttributes(file, FileAttributes.Normal);
File.Delete(file);
}
foreach (string dir in dirs)
{
DeleteDirectory(dir);
}
Directory.Delete(target_dir, false);
}
Ayrıca, benim için biri C:\WINDOWS (%WinDir%)
C:\
Bu işlevi çağırmak istiyorsun çünkü silinecek izin verilen şahsen makine alanlarında kısıtlama ekleyin.
gıt dizin.kilit Dosyası işlemeye çalış...
Bash bir komut hangi dizin olduğunu�...
Nasıl Git deposu için boş bir dizin ek...
Bir dizin olmadığını kontrol kabuk var...
Python, bir dizin var olmadığını kontr...