|
| size of Dir Fra : Ronny Olsen |
Dato : 26-03-02 21:20 |
|
Hej NG,
hvordan kan jeg finde ud hvormeget et directory med subdirectory's fylder på
harddisken ? jeg skal have gemt det i en variabel til udskrift på skærm og
evt fil, så system kald "DIR /S" vil ikke virke
env: win2000, bcb4
/Ronny Olsen
| |
Bertel Lund Hansen (26-03-2002)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 26-03-02 22:26 |
|
Ronny Olsen skrev:
>hvordan kan jeg finde ud hvormeget et directory med subdirectory's fylder på
>harddisken ? jeg skal have gemt det i en variabel til udskrift på skærm og
>evt fil, så system kald "DIR /S" vil ikke virke
Hvis der ikke er nemmere løsninger, kan det klares sådan her, men
det er ikke særlig elegant:
DIR /s|FIND "fil(er)">dirlist.txt
Det producerer en tekstfil med en linje for hvert directory. Den
sidste linje rummer de ønskede oplysninger (i et bøvlet format).
Den kan læses fra programmet.
--
Bertel
http://lundhansen.dk/bertel/ FIDUSO: http://fiduso.dk/
| |
Peter Sørensen (27-03-2002)
| Kommentar Fra : Peter Sørensen |
Dato : 27-03-02 12:01 |
|
In article <knp1au4b0jmvgvblgqf248g72qslmm5t4s@sunsite.auc.dk>,
nospam@lundhansen.dk says...
> Ronny Olsen skrev:
>
> >hvordan kan jeg finde ud hvormeget et directory med subdirectory's fylder på
> >harddisken ? jeg skal have gemt det i en variabel til udskrift på skærm og
> >evt fil, så system kald "DIR /S" vil ikke virke
>
> Hvis der ikke er nemmere løsninger, kan det klares sådan her, men
> det er ikke særlig elegant:
>
> DIR /s|FIND "fil(er)">dirlist.txt
>
> Det producerer en tekstfil med en linje for hvert directory. Den
> sidste linje rummer de ønskede oplysninger (i et bøvlet format).
> Den kan læses fra programmet.
>
Ja, og så vil den ikke virke under en ikke-Dansk version af Windows, da
"fil(er)" f.eks. i en Engelsk Win. vil være: "File(s)"
--
Peter Sørensen
nwc@europe.com
..sig not found
Fail, Crash or Explode?
| |
Eivind Midtgård (29-03-2002)
| Kommentar Fra : Eivind Midtgård |
Dato : 29-03-02 01:18 |
|
"Ronny Olsen" <rjo@danbbs.dk> skrev i melding news:3ca0d8d3$1@news...
> Hej NG,
> hvordan kan jeg finde ud hvormeget et directory med subdirectory's fylder på
> harddisken ? jeg skal have gemt det i en variabel til udskrift på skærm og
> evt fil, så system kald "DIR /S" vil ikke virke
>
> env: win2000, bcb4
Windows' API-funksjoner: FindFirstFile/FindNextFile
Eivind
| |
Ronny Olsen (30-03-2002)
| Kommentar Fra : Ronny Olsen |
Dato : 30-03-02 13:25 |
|
Hej Eivind,
jeg har prøvet at kigge lidt på API funktionen "FindFirstFile" med
efterfølgende WIN32_FIND_DATA, hvilke jeg ikke umildbart får til at virke
med denne code:
fejlen er "Improper use of typedef WIN32_FIND_DATA"
const char FILEOUT[]="c:\\temp\\test.txt";
ofstream FileOut(FILEOUT);
int done =(int)FindFirstFile("c:\\*.*", &WIN32_FIND_DATA);
while (!done){
FileOut << WIN32_FIND_DATA.cFileName << " "
<< WIN32_FIND_DATA.nFileSizeLow << endl;
done = (int)FindNextFile(&WIN32_FIND_DATA);
}
FindClose(WIN32_FIND_DATA);
FileOut.close();
*********************************
så har jeg forsøgt standart funktionen "findfirst", med nedenstående code,
denne laver filen og listning men skriver 0 ved alle directory størrelser.
int done;
const char FILEOUT[]="c:\\temp\\test.txt";
ofstream FileOut(FILEOUT);
struct ffblk blk;
done = findfirst("c:\\*.*",&blk,FA_DIREC);
while (!done){
FileOut << blk.ff_name << " " << blk.ff_fsize << endl;
done = findnext(&blk);
}
FileOut.close();
***************************
tak for hjælpen, også til de 2 andre der kom med forslag / kommentare til
DIR /S
/Ronny
"Eivind Midtgård" <eivindmi@frisurf.no> skrev i en meddelelse
news:KoOo8.17987$eJ6.340937@news2.ulv.nextra.no...
"Ronny Olsen" <rjo@danbbs.dk> skrev i melding news:3ca0d8d3$1@news...
> Hej NG,
> hvordan kan jeg finde ud hvormeget et directory med subdirectory's fylder
på
> harddisken ? jeg skal have gemt det i en variabel til udskrift på skærm og
> evt fil, så system kald "DIR /S" vil ikke virke
>
> env: win2000, bcb4
Windows' API-funksjoner: FindFirstFile/FindNextFile
Eivind
| |
Thomas Krog (31-03-2002)
| Kommentar Fra : Thomas Krog |
Dato : 31-03-02 14:11 |
|
> int done =(int)FindFirstFile("c:\\*.*", &WIN32_FIND_DATA);
2. argument til FindFirstFile skal bruge til at angive hvor informationerne
til den fundne fil skal placeres fx:
WIN32_FIND_DATA fd;
BOOL done =FindFirstFile("c:\\*.*", &fd);
nu ligger filens informationer så i fd som indeholder følgende:
typedef struct _WIN32_FIND_DATA {
DWORD dwFileAttributes;
FILETIME ftCreationTime;
FILETIME ftLastAccessTime;
FILETIME ftLastWriteTime;
DWORD nFileSizeHigh;
DWORD nFileSizeLow;
DWORD dwReserved0;
DWORD dwReserved1;
TCHAR cFileName[ MAX_PATH ];
TCHAR cAlternateFileName[ 14 ];
} WIN32_FIND_DATA, *PWIN32_FIND_DATA;
| |
|
|