Uygulamamda, dizini sürücüden silmek için kodu yazdım ancak Dosya silme işlevini incelediğimde dosyayı silmez. kullanılan içinde Hala dizin silmek için boş olması gerekir diziniDizini Java aracılığıyla silemiyor
cevap
tarafından kilitlenmiş, dizin izni silmez silme sadece boş dizin için mümkündür, WHI ch aşağıdaki gibi yöntemlerle yol açar:
/**
* Force deletion of directory
* @param path
* @return
*/
static public boolean deleteDirectory(File path) {
if (path.exists()) {
File[] files = path.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
deleteDirectory(files[i]);
} else {
files[i].delete();
}
}
}
return (path.delete());
}
Bu seferki, Klasörünüzü silecektir bile, boş olmayan ise sorun olmadan (bu dizin işletim sistemi tarafından kilitlendiğinde hariç).
silmek mümkün değildir directoryis değil bu
//Code to delete the directory if it exists
File directory = new File("c:\\Report\\");
if(directory.exists())
directory.delete();
gibi bazı şey yazdım. Boş değilse, sen File.listFiles() ve File.delete()
diğer iki olasılık (dizin boş olmamak yanı sıra) ile yinelemeli olarak da silmek gerekir:
- çalıştıran kullanıcı java programı/yazma sahip dizinine dizin kullanılır
- /farklı bir süreç (eğer? o kadar zor olmadığını yazma, ama nasıl bu teyit var) Java
docs baktığımızda: Bu yol adı bir dizini gösterir
, sonra dizin silinecek için boş olması gerekir.
Dizinin boş olduğundan emin oldunuz (hiçbir gizli dosya yok)?
Tekerleği yineleme yöntemleriyle silmek için neden icat etmelisiniz? Apache commons io'ya bir göz atın. https://commons.apache.org/proper/commons-io/javadocs/api-1.4/
FileUtils.deleteDirectory(dir);
VEYA tek ihtiyacınız olan
FileUtils.forceDelete(dir);
. Ayrıca dosyaları işlemek için kullanışlı yöntemler de vardır ...
- 1. File.Delete Dosyayı Silemiyor Not
- 2. LinkedList dizini kaldır java
- 3. Java cmd'nin aktif dizini
- 4. Python listesi ilk öğeyi silemiyor
- 5. Yansıma aracılığıyla bu [int dizini] çağrılıyor
- 6. Maven aracılığıyla Nexus'a tüm dizini Yükleyin/İndirin
- 7. Java: Seçili satırın dizini, sıralı olduğunda değişmez
- 8. Yerel sistemden dizini hdfs java koduna kopyalama
- 9. Program aracılığıyla java kodu aracılığıyla apk dosyası nasıl oluşturulur
- 10. Dosyayı Alfresco'ya program aracılığıyla aktarma (java destekli webScript aracılığıyla)
- 11. SD kartta yeni bir dizini program aracılığıyla nasıl oluşturabilirim?
- 12. Programım neden Win7'nin altında oluşturduğu dosyaları silemiyor?
- 13. Java Uygulaması aracılığıyla Harici Kavanozu Başlat
- 14. Neden Java API aracılığıyla ElasticSearch'e bağlanamıyorum?
- 15. java ayarları windows istemcisindeki kayıt defteri aracılığıyla
- 16. mongoDB aracılığıyla mongoStat alınıyor Java sürücüsü
- 17. java sphinx4 aracılığıyla ses tanıma programlaması
- 18. Python Popen, Windows'ta çoklu iş parçacıklı - stdout/stderr günlüklerini silemiyor
- 19. .NET Process.Start varsayılan dizini?
- 20. Etkinleştirilmiş Sekme Dizini Al
- 21. Geçerli çalışma dizini dışındaki dosyaların tam yolunu alma [java]
- 22. Geçerli temel yürütme dizini groovy (veya java) içinde nasıl bulunur?
- 23. Dizini kullanarak kopyalama sırasında dizini yeniden adlandırın.
- 24. Dizi dizini/dizini kullanarak dizinin sırasını değiştir
- 25. StreamWriter proje dizini ve alt dizini?
- 26. WPF Çalışma Dizini
- 27. C çalışma dizini değiştirme?
- 28. Sürüm dizini
- 29. App_Data dizini
- 30. mysql dizini
Önceden yazılmış bir şey olduğunda seviyorum. Tamamen katılıyorum. Head-up için teşekkürler. – Aaron
FileUtils # deleteDirectory ve FileUtils # forceDelete uygulamaları da yinelemeli olarak yapıyor ... –