/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
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

> 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;




Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408514
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste