Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pretraga fajlova kroz subfolder-e

[es] :: .NET :: Pretraga fajlova kroz subfolder-e

[ Pregleda: 349 | Odgovora: 5 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

IQooLogic
Milos Stojkovic
Srbija

Član broj: 110897
Poruke: 51
*.dynamic.sbb.co.yu.

Jabber: iqoologic.nt.018@hotmail.com
ICQ: 324236803
Sajt: toxicgeeks.isa-geek.org


Profil

icon Pretraga fajlova kroz subfolder-e27.02.2008. u 20:51

Sve shto treba da uradim je da pronadjem fajlove po ekstenziji i da ih obrishem.Naravno pretraga se mora odvijati i po subfolderima.

[NIJE DOMACjI ili neshto sl]

Code:

                string where = HDDlist.SelectedItems[0].Text;
                // samo prva 3 karaktera zato shto pored C:\ ima i label HDD-a :)
                where = where.Substring(0, 3);

                DirectoryInfo FindFile = new DirectoryInfo(where); int i = 0;
                DirectoryInfo[] dirs = FindFile.GetDirectories();
                FileInfo[] Files = FindFile.GetFiles("*.txt");
                foreach (DirectoryInfo dir in dirs)
                {
                    foreach (FileInfo F in Files)
                    {
                        F.Delete();
                    }
                    Files = dirs[i].GetFiles("*.txt");
                    i++;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Thumbs Deleter v0.1");
            }

            finally
            {
                MessageBox.Show("Job done.");
            }


Ovaj kod radi mada ima par fleshki.Recimo ne ide u zadnji folder i subfoldere subfoldera nadam se da ste me razumeli.
Dakle radi se o C#-u.
www.teamtorrents.org - only SBB Users
27.02.2008. u 20:51 

mmix
Miljan Mitrovic
Software Architect
Pancevo, Srbija

Moderator
Član broj: 17944
Poruke: 1661
195.252.78.*



Profil

icon Re: Pretraga fajlova kroz subfolder-e27.02.2008. u 22:47
Ne mozes iterativno da odradis ovo (*) posto imas varijabilnu dubinu svakog podfoldera. Treba ti rekurzivni algoritam (ovde dajem pseudo posto nemam VS pri ruci, snacic ces se lako za odgovarajuce metode u C#u):

Code:

void obrisi (folder)
{
    foreach (subfolder in folder.subfolders) obrisi(subfolder);  // rekurzija
    foreach (file in folder.getfiles("*.txt")) delete(file);
}

where = pocetni folder;
try { obrisi(where); } 
catch { greska}


* zapravo mozes, svaki rekutzivni algoritam moze da se izvede iterativno, ali uz komplikovaniji kod, rekurzija ce ti za ovo svrhu elegantno resiti stvar
▪ The word 'politics' is derived from the word 'poly', meaning 'many', and the word 'ticks', meaning 'blood sucking parasites' - Larry Hardiman
▪ If the good guy gets the girl, it's rated PG; if the bad guy gets the girl, it's rated R; and if everybody gets the girl, it's rated X
▪ Illegal aliens have always been a problem in the United States. Ask any Native American
27.02.2008. u 22:47 

IQooLogic
Milos Stojkovic
Srbija

Član broj: 110897
Poruke: 51
*.dynamic.sbb.co.yu.

Jabber: iqoologic.nt.018@hotmail.com
ICQ: 324236803
Sajt: toxicgeeks.isa-geek.org


Profil

icon Re: Pretraga fajlova kroz subfolder-e28.02.2008. u 00:48
Jesi li mislio neshto ovako ili josh jednostavnije ?

Code:

        public Form1()
        {
            InitializeComponent();
            scanDir(@"C:\", 1);
        }

        const int HowDeepToScan = 7;//ili je bolje do nivoa 4 ?

        private static void prcoessdire(string sourceDir, int recursionLvl)
        {
            scanDir(sourceDir, recursionLvl);
        }

        private static void scanDir(string sourceDir, int recursionLvl)
        {
            if (recursionLvl <= HowDeepToScan)
            {
                string[] fileEntries = Directory.GetFiles(sourceDir);
                foreach (string fileName in fileEntries)
                {
                    MessageBox.Show(fileName);
                }

                string[] subdirEntries = Directory.GetDirectories(sourceDir);
                foreach (string subdir in subdirEntries)
                    if ((File.GetAttributes(subdir) & FileAttributes.ReparsePoint) != FileAttributes.ReparsePoint)
                        scanDir(subdir, recursionLvl + 1);
            }
        }

www.teamtorrents.org - only SBB Users
28.02.2008. u 00:48 

IQooLogic
Milos Stojkovic
Srbija

Član broj: 110897
Poruke: 51
*.dynamic.sbb.co.yu.

Jabber: iqoologic.nt.018@hotmail.com
ICQ: 324236803
Sajt: toxicgeeks.isa-geek.org


Profil

icon Re: Pretraga fajlova kroz subfolder-e28.02.2008. u 03:06
Izvini sa dva posta zaredom al rekoh da ne menjam predhodni jer ga nisi prokomentarisao

Code:

        private void startbtn_Click(object sender, EventArgs e)
        {
            try
            {
                string here = HDDlist.SelectedItems[0].Text;
                here = here.Substring(0, 3);
                HDDlist.Items.Clear();
                Search(here);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Thumbs Deleter v0.1");
            }
            finally
            {
                MessageBox.Show("Job done.");
            }
        }


        void Search(string where)
        {
            try
            {
                foreach (string d in Directory.GetDirectories(where))
                {
                    foreach (string f in Directory.GetFiles(d, "*.txt"))
                    {
                        HDDlist.Items.Add(f);
                    }
                    Search(d);
                }
            }
            catch (System.Exception ex)
            {
                MessageBox.Show(ex.Message, "Thumbs Deleter v0.1");
            }
        }


www.teamtorrents.org - only SBB Users
28.02.2008. u 03:06 

DarkMan
Darko Matesic

Član broj: 20445
Poruke: 469
77.46.212.*



Profil

icon Re: Pretraga fajlova kroz subfolder-e28.02.2008. u 12:24
Evo ti najjednostavnije sto moze:
Code:

string[] files = System.IO.Directory.GetFiles("c:\\windows", "*.*", System.IO.SearchOption.AllDirectories)
28.02.2008. u 12:24 

IQooLogic
Milos Stojkovic
Srbija

Član broj: 110897
Poruke: 51
*.dynamic.sbb.co.yu.

Jabber: iqoologic.nt.018@hotmail.com
ICQ: 324236803
Sajt: toxicgeeks.isa-geek.org


Profil

icon Re: Pretraga fajlova kroz subfolder-e28.02.2008. u 15:04
Koliko treba vremena da bi se izvrshilo trazhenje fajlova sa kodom u jednom redu ?
Ja sam probao rekurzijom i extra radi.Potrebno joj je oko 10-20 sekundi da pretrazhi ceo HDD (C:\ - na njemu je win) - oko 30GB i trazhio je *.txt fajlove a ima ih gomila, za neverovati

Elem jesi li probao da vidish kolo je trazhenje u jednom redu brzo jer me mrzi da mu radim multithreading ? :P
www.teamtorrents.org - only SBB Users
28.02.2008. u 15:04 

[es] :: .NET :: Pretraga fajlova kroz subfolder-e

[ Pregleda: 349 | Odgovora: 5 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.