我正在尝试使用此示例
创建一个程序,该程序将列出Windows::Forms::ListBox
.
由于用户不会进行任何输入,因此我不需要该
void DisplayErrorBox(LPTSTR lpszFunction)
功能以及其他错误检查。
当我单击触发事件的按钮时,这就是列表框中显示的内容。
o //&#o/
/ //
/ //
/ //
/ //
/ //
/ //
/ //
此外,每次单击按钮时只会出现一行。它应该找到目录中的所有文件并列出它们,而不是每次单击按钮时都找到下一个文件。
我也想使用相对的strPath,而不是绝对的......到目前为止,这就是我对代码所做的:
private:
void List_Files()
{
std::string strPath = "C:\\Users\\Andre\\Dropbox\\Programmering privat\\Diablo III DPS Calculator\\Debug\\SavedProfiles";
TCHAR* Path = (TCHAR*)strPath.c_str();
WIN32_FIND_DATA ffd;
LARGE_INTEGER filesize;
TCHAR szDir[MAX_PATH];
size_t length_of_arg;
HANDLE hFind = INVALID_HANDLE_VALUE;
// Prepare string for use with FindFile functions. First, copy the
// string to a buffer, then append '\*' to the directory name.
StringCchCopy(szDir, MAX_PATH, Path);
StringCchCat(szDir, MAX_PATH, TEXT("\\*"));
// List all the files in the directory with some info about them.
do
{
if (ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
//If it's a directory nothing should happen. Just continue with the next file.
}
else
{
//convert from wide char to narrow char array
char ch[260];
char DefChar = ' ';
WideCharToMultiByte(CP_ACP,0,(ffd.cFileName),-1, ch,260,&DefChar, NULL);
//A std:string using the char* constructor.
std::string str(ch);
String ^ sysStr = gcnew String(str.c_str());
MessageBox::Show("File Found", "NOTE");
ListBoxSavedFiles->Items->Add (sysStr);
}
}
while (FindNextFile(hFind, &ffd) != 0);
FindClose(hFind);
}