Avatar billede mutalisk Nybegynder
14. april 2006 - 23:10 Der er 6 kommentarer og
1 løsning

Søg efter fil

Hey...

Jeg vil gerne lave en søgning efter en fil på alle drev, er der nogen speciel funktion i C# der kan gøre det eller skal jeg ud i det vilde kodning?

Hvis i har nogle links til hvor jeg kan se eksempler på det samt forklaringer må i gerne lige smide det ind.
Avatar billede dr_chaos Nybegynder
14. april 2006 - 23:42 #1
Avatar billede mutalisk Nybegynder
14. april 2006 - 23:47 #2
Det skal fungere til Console og ikke Window, måske du kan finde et dertil? - Helst så simpelt som muligt, for det der går da helt amok
Avatar billede arne_v Ekspert
15. april 2006 - 00:08 #3
ikke super smart kode, men det virker:

using System;
using System.IO;

public class MainClass
{
    public static string Find(string dir, String fnm)
    {
        string[] files = Directory.GetFiles(dir);
        foreach(string f in files)
        {
            if(Path.Combine(dir, fnm) == f)
            {
                return dir;
            }
               
        }
        string[] dirs = Directory.GetDirectories(dir);
        foreach(string d in dirs)
        {
            if(d != @"C:\System Volume Information")
            {
                string res = Find(d, fnm);
                if(res != null)
                {
                    return res;
                }
            }
        }
        return null;
    }
    public static void Main(string[] args)
    {
        Console.WriteLine(Find(@"C:\", "dir.cs"));
        Console.WriteLine(Find(@"C:\", "dir2.cs"));
    }
}
Avatar billede mutalisk Nybegynder
15. april 2006 - 00:11 #4
Perfekt script arne_v, er der en måde jeg kan gøre så den finder alle filerne.. Lad os sige der er mere end en der hedder dir.cs ?
Avatar billede arne_v Ekspert
15. april 2006 - 00:18 #5
using System;
using System.IO;

public class MainClass
{
    public static void Find(string dir, String fnm)
    {
        string[] files = Directory.GetFiles(dir);
        foreach(string f in files)
        {
            if(Path.Combine(dir, fnm) == f)
            {
                Console.WriteLine(dir);
                return;
            }
               
        }
        string[] dirs = Directory.GetDirectories(dir);
        foreach(string d in dirs)
        {
            if(d != @"C:\System Volume Information")
            {
                Find(d, fnm);
            }
        }
    }
    public static void Main(string[] args)
    {
        Find(@"C:\", "dir.cs");
        Find(@"C:\", "dir2.cs");
        Find(@"C:\", "build.bat");
    }
}
Avatar billede mutalisk Nybegynder
15. april 2006 - 00:23 #6
Jeg takker mange gange, det var præcist det jeg skulle bruge


Send et svar ;)
Avatar billede arne_v Ekspert
15. april 2006 - 01:09 #7
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester