Avatar billede pous Nybegynder
25. september 2003 - 13:02 Der er 2 kommentarer og
1 løsning

Størrelse i bytes på indholdet af et Directory

Jeg skal lave en oplistning af alle subdirs i et directory. På disse subdirs ønsker jeg bl.a. at udtrække  størrelse på indholdet af hver enkelt. Her er et udpluk af min kode:

  WIN32_FIND_DATA FindFileData;
  HANDLE hFind = NULL;
  char lpDirSpec[]="*.*";  // directory specification
  DWORD dwAttrs, dwSize, dwSizeHigh, dwSizeLow, dwError;
  if (SetCurrentDirectory("c:\\") {
    hFind = FindFirstFile(lpDirSpec, &FindFileData);
    if (hFind == INVALID_HANDLE_VALUE) {
      String t=GetLastError();
      Edit1->Text="Invalid file handle. Error is "+t;
    }
    else {
      dwAttrs = GetFileAttributes(FindFileData.cFileName);
      String exclDir=FindFileData.cFileName;
      // Peger HANDLE på et Directory
      if ((dwAttrs & FILE_ATTRIBUTE_DIRECTORY))
        ...
        dwSize = GetFileSize (hFind, NULL) ;
        ...

Er der nogen der har et bud på dette ?
Avatar billede arne_v Ekspert
25. september 2003 - 13:07 #1
Du er nødt til at finde alle filer.

Du behøver ikke kalde GetFileSize da WIN32_FIND_DATA strukturen
indeholder størrelsen.

Og så er det bare et spørgsmål om at lægge sammen.
Avatar billede pous Nybegynder
25. september 2003 - 13:13 #2
Ok, tak for svaret. Jeg troede blot at der fandtes sådan et funktionskald.
Avatar billede arne_v Ekspert
25. september 2003 - 13:44 #3
Der er mig bekendt ikke nogen funktion til at finde size af alle filer
i et directory.

GetFileSize eksisterer skam (man bør nok bruge GetFileSizeEx nu
om dage for at kunne håndtere filer større end 2/4 GB).

Men der er jo ingen grund til at kalde den når det samem kald der finder
fil navnene allerede har fundet størrelsen.
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
Kurser inden for grundlæggende programmering

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



Seneste spørgsmål Seneste aktivitet
I går 17:10 Joomla artikler Af rmadsen80 i CMS-systemer
I går 16:54 Printervalg til kontor Af tumben i Printere
I går 15:08 Http client med X509Certificate2 Af joki i C#
I går 13:02 Hjemmenetværk Af Andfer i LAN/WAN
I går 11:17 Chrombook Af lurup i Andre styresystemer