none
Dosya arama (Sistem dosyalarında hata) RRS feed

  • Soru

  • Merhaba,

    var files = Directory.GetFiles(lblBootDizini.Text.Substring(0, 3), "*.*", SearchOption.AllDirectories) // Örnek DosyaYolu = "D:\"
                                  .Where(s => s.EndsWith("grub.exe"));

    Bu kod ile seçilen dizinde belirttiğim dosyayı arattırıyorum.

    Ancak dizinde sistem klasörleri (System Volume Information) olduğunda erişim hatası veriyor.

    Bu kod üzerinde (System Volume Information) klasörünü taramaması için nasıl bir düzeltme yapmam gerekiyor?

    Yardımlarınızı rica ediyorum.

    Teşekkürler.

    Verilen hata görüntüsü aşağıda.

    Hata Görüntüsü


    Faruk GÖKÇE



    9 Ekim 2019 Çarşamba 10:54

Yanıtlar

  • Söyle yapabilirsin:

    void Main()
    {
    	var bulunanlar = Ara(@"c:\", "*grub.exe");
    	Console.WriteLine("Bulunanlar");
    	foreach (var filename in bulunanlar)
    	{
    		Console.WriteLine(filename);
    	}
    }
    
    public IEnumerable<string> Ara(string startFolder, string skeleton)
    {
    	List<string> files = new List<string>();
    	new DirectoryInfo(startFolder).GetDirectories().AsParallel().ForAll(directory =>
    	{
    		try
    		{
    			files.AddRange(directory.GetFiles(skeleton, SearchOption.AllDirectories)
    			.Select(file => file.FullName));
    
    		}
    		catch (Exception ex)
    		{
    			Console.WriteLine(ex.Message);
    		}
    	});
    	return files;
    }
    

    Tabii gercekten iyi ve hızlı bir sey istiyorsan, voidtools'dan Everything alıp kullanmakta fayda var (yani herkesin taskbarinda olması gereken bir sey bence)



    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.

    • Yanıt Olarak İşaretleyen Faruk GÖKÇE 9 Ekim 2019 Çarşamba 13:32
    9 Ekim 2019 Çarşamba 13:17
    Yanıtlayıcı

Tüm Yanıtlar

  • Söyle yapabilirsin:

    void Main()
    {
    	var bulunanlar = Ara(@"c:\", "*grub.exe");
    	Console.WriteLine("Bulunanlar");
    	foreach (var filename in bulunanlar)
    	{
    		Console.WriteLine(filename);
    	}
    }
    
    public IEnumerable<string> Ara(string startFolder, string skeleton)
    {
    	List<string> files = new List<string>();
    	new DirectoryInfo(startFolder).GetDirectories().AsParallel().ForAll(directory =>
    	{
    		try
    		{
    			files.AddRange(directory.GetFiles(skeleton, SearchOption.AllDirectories)
    			.Select(file => file.FullName));
    
    		}
    		catch (Exception ex)
    		{
    			Console.WriteLine(ex.Message);
    		}
    	});
    	return files;
    }
    

    Tabii gercekten iyi ve hızlı bir sey istiyorsan, voidtools'dan Everything alıp kullanmakta fayda var (yani herkesin taskbarinda olması gereken bir sey bence)



    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.

    • Yanıt Olarak İşaretleyen Faruk GÖKÇE 9 Ekim 2019 Çarşamba 13:32
    9 Ekim 2019 Çarşamba 13:17
    Yanıtlayıcı
  • Söyle yapabilirsin:

    void Main()
    {
    	var bulunanlar = Ara(@"c:\", "*grub.exe");
    	Console.WriteLine("Bulunanlar");
    	foreach (var filename in bulunanlar)
    	{
    		Console.WriteLine(filename);
    	}
    }
    
    public IEnumerable<string> Ara(string startFolder, string skeleton)
    {
    	List<string> files = new List<string>();
    	new DirectoryInfo(startFolder).GetDirectories().AsParallel().ForAll(directory =>
    	{
    		try
    		{
    			files.AddRange(directory.GetFiles(skeleton, SearchOption.AllDirectories)
    			.Select(file => file.FullName));
    
    		}
    		catch (Exception ex)
    		{
    			Console.WriteLine(ex.Message);
    		}
    	});
    	return files;
    }
    

    Tabii gercekten iyi ve hızlı bir sey istiyorsan, voidtools'dan Everything alıp kullanmakta fayda var (yani herkesin taskbarinda olması gereken bir sey bence)



    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.

    Çetin hocam çok teşekkür ederim.

    Yukarıdaki kodlarla işimi görüyordum ancak sistem dosyası engeline takılınca başka yol bulmam gerekti. Sizin verdiğiniz metotla hata almadan aradığımı hızlıca bulup işlem yapabildim.

    Tekrar teşekkürler.


    Faruk G&amp;amp;#214;K&amp;amp;#199;E

    9 Ekim 2019 Çarşamba 13:34