Avatar billede anders159 Nybegynder
31. januar 2006 - 11:58 Der er 7 kommentarer og
2 løsninger

HJÆLP. Hent fil fra bestemt dato

Hejsa. vi prøver igen

har en lille app, hvor jeg skal kunne hente alle filer fra en mappe udfra en dato.

Jeg skal altså have en liste med alle de filer der er blevet oprettet dd-mm-yyyy.

måske må man bare gå den lange vej og hente alle og tjekke, men da der med tiden kommer til at ligge mange 1000 filer, vil jeg helst undgå dette.

Håber nogen kan hjælpe ;)
Avatar billede Slettet bruger
31. januar 2006 - 12:31 #1
Måske det her kan hjælpe dig:

Den gennemsøger hele den sti du vælger, søger efter "Creation Date" på filerne.. og tilføjer dem til et listview hvis det passer..

Eksemplet er IKKE testet..

using System.IO;
using System.Text.RegularExpressions;


private void DoSearch(string srcdir, bool recursive, string SearchDate)
        {
            DirectoryInfo dir;
            FileInfo[] files;
            DirectoryInfo[] dirs;

            dir = new DirectoryInfo(srcdir);
            try
            {
                files = dir.GetFiles();

                foreach (FileInfo file in files)
                {
                    if (Regex.IsMatch(file.CreationTime.ToString(), SearchDate, RegexOptions.IgnoreCase))
                    {
                     
                        listView1.Items.Add(file.FullName);
                   
                    }
                }
                files = null;
                if (!recursive)
                {
                    return;
                }
                dirs = dir.GetDirectories();
                foreach (DirectoryInfo subdir in dirs)
                {
                    DoSearch(subdir.FullName, recursive, SearchDate);
                }
                dirs = null;
                dir = null;
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
        }
Avatar billede Slettet bruger
31. januar 2006 - 12:33 #2
Kaldes fx sådan:

DoSearch(@"C:\Musik", true, "DATOEN I DET RIGTIGE FORMAT")

ved ikke ik tiden kommer med ind også, men du kan jo lave en messagebox på file.CreationTime.ToString() og se hva den returner, ellers ret den til hva du skla bruge..
Avatar billede dr_chaos Nybegynder
31. januar 2006 - 12:35 #3
du kan bruge noget i denne stil:
private void visFiler(DateTime Dato, string folder)
    {

        string[] files = Directory.GetFiles(folder);
        foreach (string file in files)
        {
            FileInfo fi = new FileInfo(file);
            if (fi.LastAccessTime >= Dato)
            {
                System.Diagnostics.Debug.WriteLine(fi.ToString());
            }
        }
Avatar billede dr_chaos Nybegynder
31. januar 2006 - 12:36 #4
min er kun en fordel hvis det drejer sig om en enkelt mappe.
Hvis det er flere er wb-freekill's bedre eller min kan udbygges.
Avatar billede anders159 Nybegynder
01. februar 2006 - 12:09 #5
ok de herre :)

det er ikke helt det jeg håbede på, men kunne godt lugte at det gik den vej.

som jeg forstår det, så ska jeg hente alle filer, for derefter at tjekke om de har den rette dato?
Avatar billede Slettet bruger
01. februar 2006 - 12:51 #6
Hva mener du med at hente? tror du mangler at kommme med en ledetråd! :) hvor ligger de filer du skal tjekke da?
Avatar billede anders159 Nybegynder
02. februar 2006 - 13:54 #7
ja ok :)

ved ikke om jeg reelt henter filen, når jeg løber mappen igennem.

men kan se at i begge hente dir.files. også først derefter chekker hvad datoen siger, og så tager de filer der opfylder kriteriet.

havde dog bare håbet på at jeg ikke skulle kigge hele mappen igennem.

De herre.....
smid et svar og jeg skal fordel lidt point;)
Avatar billede Slettet bruger
03. februar 2006 - 14:03 #8
svar :)
Avatar billede dr_chaos Nybegynder
03. februar 2006 - 21:30 #9
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