PDA

Visualizza la versione completa : [C/C++] Libreria funzioni per directory non disponibile in VC++


lechuck
31-10-2006, 22:53
visual C++ non mi vede <dirent.h> e quindi non riesco a compilare
vorrei usare opendir, readdir, closedir ..qualcuno mi sa dire qual' il problema?

grazie

andbin
31-10-2006, 23:09
Originariamente inviato da lechuck
visual C++ non mi vede <dirent.h> e quindi non riesco a compilare
vorrei usare opendir, readdir, closedir ..qualcuno mi sa dire qual' il problema?Queste funzioni fanno parte dello standard POSIX. Il VC++ non le ha, sorry.

Se vuoi, usa le API Win32.

lechuck
01-11-2006, 05:18
scusa ma sono ignorante ancora..
potresti spiegarti meglio grazie..!

andbin
01-11-2006, 15:55
Ecco un semplice esempio:

#define STRICT
#include <windows.h>
#include <stdio.h>

int main (void)
{
HANDLE hFind;
WIN32_FIND_DATA wfd;
BOOL bRet;

hFind = FindFirstFile ("C:\\WINNT\\*", &wfd);

bRet = hFind != INVALID_HANDLE_VALUE;

while (bRet)
{
if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
printf ("<DIR> %s\n", wfd.cFileName);
else
printf (" %s\n", wfd.cFileName);

bRet = FindNextFile (hFind, &wfd);
}

if (hFind != INVALID_HANDLE_VALUE)
FindClose (hFind);

return 0;
}
Stampa i file/directory presenti in C:\WINNT (su XP dovrebbe essere C:\WINDOWS).

XWolverineX
01-11-2006, 16:20
bRet = hFind != INVALID_HANDLE_VALUE;

Cosa significa?
bRet uguale a hFind che diverso da INVALID_HANDLE_VALUE???

MItaly
01-11-2006, 16:25
bret uguale al risultato di (hFind != INVALID_HANDLE_VALUE); ovviamente bret sar o true (hFind diverso da INVALID_HANDLE_VALUE) o false (hFind uguale a INVALID_HANDLE_VALUE). In sostanza, bret true quando la ricerca andata bene.

oregon
01-11-2006, 16:37
Originariamente inviato da XWolverineX

bRet = hFind != INVALID_HANDLE_VALUE;

Cosa significa?
bRet uguale a hFind che diverso da INVALID_HANDLE_VALUE???

Per capirlo meglio, si puo' scrivere

bRet = (hFind != INVALID_HANDLE_VALUE);

ovvero

if (hFind != INVALID_HANDLE_VALUE)
bRet=true;
else
bRet=false;

Loading