PDA

View Full Version : [C++] Directory stringa


okay
02-04-2005, 09:11
ciao

Ho fatto questo:
1.
HANDLE hFindFile = FindFirstFile(L"Sfx\\*.mp3", &finddata);

devo ricercare in dir tutti i file ma se metto *.* non trova nulla allora sono costretto a fare 3 for per ,wav, .mid e .mp3 sapete come fare per un unica passata? io uso un do tipo:

WIN32_FIND_DATA finddata;
HANDLE hFindFile = FindFirstFileW(L"Sfx\\*.mp3", &finddata);
do
{
} while (FindNextFile(hFindFile, &finddata));

2. Invece questo come posso addizionare alla stringa "*.mp3*"
vorrei fare esempio:

CHAR strSoundPath[MAX_PATH];
GetCurrentDirectoryA(MAX_PATH, strSoundPath);
strcat(strSoundPath, "\\Sfx");
//Convert the path to unicode.
WCHAR wstrSoundPath[MAX_PATH];
MultiByteToWideChar(CP_ACP, 0, strSoundPath, -1, wstrSoundPath, MAX_PATH);

WIN32_FIND_DATA finddata;
//ECCO QUESTA SOTTO per esmpio
HANDLE hFindFile = FindFirstFile(strSoundPath +"*.mp3", &finddata);

---------------

ciao cionci
grazie per la risposta all'altro tread era una che avevo fatto come routine e non ricordavo della sua utilità il tread era:
[C++]Buffer di tastiera...?

okay
02-04-2005, 10:13
Nella dir ho 4 mp3
Ecco ci sono quasi riuscito ma nel file log.txt mi stampa 4 dir invece vorrei stampare solo i nomi dei file trovati questo è il codice:


WIN32_FIND_DATA finddata;
HANDLE hFindFile = FindFirstFile(wstrSoundPath, &finddata);

do
{
MultiByteToWideChar(CP_ACP, 0, strSoundPath, -1, finddata.cFileName, MAX_PATH);
WriteToLog(strSoundPath);
} while (FindNextFile(hFindFile, &finddata));

okay
02-04-2005, 12:48
Ecco avrei concluso ma Nom ha segni strani.........
questo è il codice

WCHAR NomeFile[MAX_PATH];
CHAR Nom[250];

do
{
wcscpy(NomeFile, finddata.cFileName);
MultiByteToWideChar(CP_ACP, 0, Nom, -1, NomeFile, 0);
} while (FindNextFile(hFindFile, &finddata));

PURTROPPO Nom contiene tutti segni strani questo è ASSURDO