PDA

View Full Version : سوال: پیدا کردن فایل در C++



hd2010hd
پنج شنبه 15 فروردین 1392, 11:02 صبح
با سلام من دنبال یه کدی هستم که بهش وقتی >>>رشته یه مسیر خاص رو میدی برات فایل های

اون قسمت رو نشون بده!

مثلا :
C:\\*.*

همه چیزشو نشون بده

#target
پنج شنبه 15 فروردین 1392, 11:10 صبح
توابع FindNextFile ٫ FindFirstFile

hd2010hd
پنج شنبه 15 فروردین 1392, 11:13 صبح
میخواستم دقیق تر توضیح بدین

بهروز عباسی
پنج شنبه 15 فروردین 1392, 13:14 عصر
#pragma comment(lib, "shlwapi.lib")
#include <stdio.h>
#include <windows.h>
#include <shlwapi.h>
int search(LPSTR lpszPath);
int main()
{
search("C:\\");
return 0;
}

int search(LPSTR lpszPath)
{
WIN32_FIND_DATA WFD;
HANDLE hSearch;
CHAR szFilePath[MAX_PATH + 1];
PathCombine(szFilePath, lpszPath, "*.*");
hSearch = FindFirstFile(szFilePath,&WFD);
if(hSearch == INVALID_HANDLE_VALUE)
{
printf("Error Handle Value\n");
}
while (FindNextFile(hSearch,&WFD))
{
if(strcmp(WFD.cFileName,"..") && strcmp(WFD.cFileName,"."))
{
if(WFD.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
PathCombine(szFilePath, lpszPath, WFD.cFileName);
search(szFilePath);
}
else
{
PathCombine(szFilePath, lpszPath, WFD.cFileName);
printf("%s\n",szFilePath);
}
}
}
FindClose(hSearch);
return 0;
}

hd2010hd
پنج شنبه 15 فروردین 1392, 15:11 عصر
#pragma comment(lib, "shlwapi.lib")
#include <stdio.h>
#include <windows.h>
#include <shlwapi.h>
int search(LPSTR lpszPath);
int main()
{
search("C:\\");
return 0;
}

int search(LPSTR lpszPath)
{
WIN32_FIND_DATA WFD;
HANDLE hSearch;
CHAR szFilePath[MAX_PATH + 1];
PathCombine(szFilePath, lpszPath, "*.*");
hSearch = FindFirstFile(szFilePath,&WFD);
if(hSearch == INVALID_HANDLE_VALUE)
{
printf("Error Handle Value\n");
}
while (FindNextFile(hSearch,&WFD))
{
if(strcmp(WFD.cFileName,"..") && strcmp(WFD.cFileName,"."))
{
if(WFD.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
PathCombine(szFilePath, lpszPath, WFD.cFileName);
search(szFilePath);
}
else
{
PathCombine(szFilePath, lpszPath, WFD.cFileName);
printf("%s\n",szFilePath);
}
}
}
FindClose(hSearch);
return 0;
}




بهروز عزیز این کدها مشکل داره و توی تبدیل پارامتر ها ایراد میگیره

بهروز عباسی
پنج شنبه 15 فروردین 1392, 21:23 عصر
بهروز عزیز این کدها مشکل داره و توی تبدیل پارامتر ها ایراد میگیره
کامپایلرت چیه؟

من با MSVC 2010 نوشتم مشکلی هم نداشت.

UfnCod3r
پنج شنبه 15 فروردین 1392, 22:11 عصر
به احتمال زیاد گذاشتی رو حالت یونیکد .
برو به تنظیمات پروژه و بعد General\CharacterSet=> Use MultiByte...
البته این که گفتم برا VS هست .