PDA

View Full Version : مبتدی: file browser برای انتخاب یک فایل در کنسول



vahid javani
شنبه 26 اسفند 1391, 21:58 عصر
سلام
می خواستم یه برنامه ای بنویسم که در ابتدا نام درایو ها رو نشون بده، بعد کاربر با کلید بالا و پایین یکی از درایو رو انتخاب کنه و enter بزنه و داخل پوشه ها فایلش رو پیدا کنه.
در این مورد خیلی سرچ کردم ولی چیزی دستگیرم نشد.
ممنون میشم کمکم کنید

اینکه آیا کلاس آماده ای هست برای اینکار؟ (من تاحالا با کلاس های آماده کار نکردم) اگه نیست میشه راهنماییم کنید دنبال چه چیزهایی باید بگردم؟

تنها چیزی که پیدا کردم برنامه ای بود که نام فایل های داخل یک پوشه رو نشون میداد، فکر کنم اگه بتونم نام درایو ها رو پیدا کنم بتونم چیزی که می خوام رو پیاده سازی کنم، شما ایده ای دارید؟؟

#include <windows.h>
#include <iostream>
#include <string>
#include <vector>
using namespace std;

string wchar_t2string(const wchar_t *wchar)
{
string str = "";
int index = 0;
while(wchar[index] != 0)
{
str += (char)wchar[index];
++index;
}
return str;
}

wchar_t *string2wchar_t(const string &str)
{
wchar_t wchar[260];
int index = 0;
while(index < str.size())
{
wchar[index] = (wchar_t)str[index];
++index;
}
wchar[index] = 0;
return wchar;
}

vector<string> listFilesInDirectory(string directoryName)
{
WIN32_FIND_DATA FindFileData;
wchar_t * FileName = string2wchar_t(directoryName);
HANDLE hFind = FindFirstFile(FileName, &FindFileData);

vector<string> listFileNames;
listFileNames.push_back(wchar_t2string(FindFileDat a.cFileName));

while (FindNextFile(hFind, &FindFileData))
listFileNames.push_back(wchar_t2string(FindFileDat a.cFileName));

return listFileNames;
}

void main()
{
vector<string> listFiles;
listFiles = listFilesInDirectory("C:\\*.txt");
for each (string str in listFiles)
cout << str << endl;
system("pause");
}