Şimdi Ara

Java'da klasör dolu mu boş mu kontrol etme

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
14
Cevap
0
Favori
531
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar elimde böyle bir örnek var ama onlarca klasör var, her klasör için ayrı ayrı nesne mi oluşturmam lazım?


    package com.mkyong.file;

    import java.io.File;

    public class CheckEmptyDirectoryExample
    {
    public static void main(String[] args)
    {

    File file = new File("C:\\folder");

    if(file.isDirectory()){

    if(file.list().length>0){

    System.out.println("Directory is not empty!");

    }else{

    System.out.println("Directory is empty!");

    }

    }else{

    System.out.println("This is not a directory");

    }
    }
    }



  • File file = new File("C:\\folder");

    Satırında sadece tek klasöürü kontrol ediyor. O klasör dolu mu boş mu onu gösterir.

    Klasörün altındaki klasörler için ya tek tek dizinleri tanımlayacaksın yada sana dizinin altındaki verebilecek bir dinamik kod yazacaksın.
  • quote:

    Orijinalden alıntı: kasap11

    File file = new File("C:\\folder");

    Satırında sadece tek klasöürü kontrol ediyor. O klasör dolu mu boş mu onu gösterir.

    Klasörün altındaki klasörler için ya tek tek dizinleri tanımlayacaksın yada sana dizinin altındaki verebilecek bir dinamik kod yazacaksın.
    Dizinleri tek tek tanımlamak yeirne , ArrayList komutu ile dizinlerin listesini oluşturup bir döngü komutuyla bunları okutabilir miyim?
  • quote:

    Orijinalden alıntı: sybercomp

    Dizinleri tek tek tanımlamak yeirne , ArrayList komutu ile dizinlerin listesini oluşturup bir döngü komutuyla bunları okutabilir miyim?

    Alıntıları Göster
    Yapılabilir tabiki. Belirli dizin verildikten sonra istenilen Collection yapısına data yüklenebilir.

    Yardımıcı olması için.https://stackoverflow.com/questions/1844688/how-to-read-all-files-in-a-folder-from-java

    Linki üzerinden inceleyebilirsin.




  • Mobilden girdiğim için sana bir kod veremiyorum ama gidiş yolunu basitçe anlatabilirim. Verdiğin kod sadece tek bir klasoru kontrol ediyor ama senaryolar çeşitli. Bir root klasörün olduğunu varsayıyorum, şöyleki bu root klasörün içinde binlerce klasör olabilir, hatta file da olabilir. Bu binlerce klasörün içinde yine binlerce klasör olabilir, bu böyle gider. “Bu böyle gider” sözündende Recursive fonksiyon kullanman gerektiğini anlamışsındır. Fonksiyonu ilk olarak root klasörün path’i ile çağırmalısın, fonksiyonda klasörü açıp içindekiler okuyacaksın. Bunu string düzeyinde yapan .list() metodu var, yada File objesi veren .listFiles() metodu var, hangisini kullanacagın sana bağlı tavsiyem listFiles. Yani root klasorunun içindeki bütün herşeyi bu iki metod sana array şeklinde verir, f = folder.listFiles() dan devam ediyorum, sonra bu metoddan aldığın arrayi for loopa sokacaksın, eğer f.isDirecrory ise f pathini alan bir recursive fonksiyonunu çağıracaksın bu böyle gidecek, taki bitene kadar. Düz metin şeklinde yazdığım için kafan karışabilir, bu yazdıklarım sadece gezmek içindi, klasorun boş olup olmadığını bulmak da basit folder.listFiles().length == 0 ise içinde hiçbirşey yok demektir.Olayı daha iyi anlaman için docs.oracle sitesinden File inceleyebilirsin



    < Bu mesaj bu kişi tarafından değiştirildi javacıı -- 24 Ocak 2020; 1:30:2 >
    < Bu ileti DH mobil uygulamasından atıldı >




  • Psudo kod vereyim

    >Klasörün path’ini parametre alan bir folder isminde File nesnesi oluştur
    > folder nesnesinden içeri çekecek bir File arrayi oluştur, File[] files = folder.listFiles()
    > files nesnesi boşmu değilmi kontrol et ‘lenght’ ile
    > boş ise return, dolu ise arrari for loopa sok for( File f : files )
    > f.isDirecrory ise aynı işleri tekrar yapacak olan recursivi çağır
    > f.isFile ise zaten hiç senin olmamıştır

    < Bu ileti DH mobil uygulamasından atıldı >
  • Bu tarz şeyler ile uzun süredir uğraşmamıştım elbet eksikleri vardır, ayrıca tam çözümü yapmadım, işte boş klasörleri falan kayıt altına alacaksan içeriğe ekleme yapmalısın, sayac tutarsın falan bunlar sana kalmış. Önümde bir pc ve editör olmadığı için bunları uygulayıp yazmadım, aklımda kalanlar ile yardımcı olmaya çalıştım, Başarılar

    < Bu ileti DH mobil uygulamasından atıldı >
  • quote:

    Orijinalden alıntı: javacıı

    Bu tarz şeyler ile uzun süredir uğraşmamıştım elbet eksikleri vardır, ayrıca tam çözümü yapmadım, işte boş klasörleri falan kayıt altına alacaksan içeriğe ekleme yapmalısın, sayac tutarsın falan bunlar sana kalmış. Önümde bir pc ve editör olmadığı için bunları uygulayıp yazmadım, aklımda kalanlar ile yardımcı olmaya çalıştım, Başarılar
    Teşekkürler yardımın için ama benim elimde kontrol edilecek dosyaların listesi var yani rastgele bir kontrol olmayacak, dosyalar sadece boşmu dolu diye kontrol edilecek, bunları elle yapmak yerine bir kod yazıp hatta kodu yazdıktan sonra arayüzde yazmak istiyorum. Maksat rutin işleri otomatize etmek bu aradada kodlamayı öğrenmek içinde bahane oluyor bana.



    < Bu mesaj bu kişi tarafından değiştirildi sybercomp -- 24 Ocak 2020; 6:35:56 >
  • For döngüsü neden hata veriyor burada " not a statement" hatasu ve bu dizin sonuçlarını nasıl saklayabilirim yazdırmak için?


    import java.io.File;

    public class CheckEmptyDirectoryExample
    {
    public static void main(String[] args)
    {

    int i=0;


    String str[] = {"Dizin1","Dizin2"...
    };

    for (i; i<36;i++) {

    File file = new File(str);



    if(file.isDirectory()){

    if(file.list().length>0){

    System.out.println("Directory is not empty!");

    }else{

    System.out.println("Directory is empty!");

    }

    }else{

    System.out.println("This is not a directory");


    }
    }

    }

    }
  • Yazdığın kod kötü bir kod, benim dediklerimi yap, yukarda arkadaş bir kod paylaşmış bak, bakmamıştım ona benim dediğimi yapıyor oda sadece boşmu değilmi kontrol etmiyor, hatana gelecek olursak yanlış bir for tanımlaması, for( int i = 0 , ........) yapman lazım

    < Bu ileti DH mobil uygulamasından atıldı >
  • javacıı kullanıcısına yanıt
    For(i=0 yapıncada kabul etmedi hata veriyor

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • quote:

    Orijinalden alıntı: javacıı

    Yazdığın kod kötü bir kod, benim dediklerimi yap, yukarda arkadaş bir kod paylaşmış bak, bakmamıştım ona benim dediğimi yapıyor oda sadece boşmu değilmi kontrol etmiyor, hatana gelecek olursak yanlış bir for tanımlaması, for( int i = 0 , ........) yapman lazım
    Çıktıları tabloda şeklinde yani klasör ismi ve sonuç şeklinde nasıl yazdırabilirim jtable ile

    import java.io.File;

    public class CheckEmptyDirectoryExample
    {
    public class ConsoleColors {
    public static final String RESET = "\033[0m";
    public static final String RED = "\033[0;31m";
    public static final String GREEN = "\033[0;32m";
    public static final String PURPLE = "\033[0;35m";
    }
    public static void main(String[] args)

    {

    //int i=0;


    String str[] = {"directory1.directory2,..
    };



    for (int i=0; i<str.length;i++) {

    File file = new File(str);

    if(file.isDirectory()){

    if(file.list().length>0){

    System.out.println(ConsoleColors.RED+file.getPath() + " Dizin Boş DEĞİL!");

    }else{

    System.out.println(ConsoleColors.GREEN+file.getPath() + " DİZİN BOŞ!");

    }

    }else{

    System.out.println(ConsoleColors.PURPLE+"DİZİN DEĞİL!");


    }
    }

    }

    }



    < Bu mesaj bu kişi tarafından değiştirildi sybercomp -- 31 Ocak 2020; 1:11:51 >




  • Üzgünüm, gui bilgim yok.

    < Bu ileti DH mobil uygulamasından atıldı >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.