mfc将根目录下的txt文件名读取并依次加入combobox中怎么搞
答案:1 悬赏:30 手机版
解决时间 2021-04-07 01:01
- 提问者网友:不爱我么
- 2021-04-06 06:59
mfc将根目录下的txt文件名读取并依次加入combobox中怎么搞
最佳答案
- 五星知识达人网友:爱难随人意
- 2021-04-06 08:38
是只需要读根目录下的文件,不包括子文件夹文件吗?
如果是的话,我这里有一点之前写的代码给你给你参考下:
struct FileMsg_struct
{
CString File_name;
CString File_path;
CString File_lawritetime;
byte bResult;
};
struct Dir_struct
{
vector Subdric;
CString subdric_name;
vector File;
byte bsucdir;
};
CfindfileDlg::Dir_struct* CfindfileDlg::fun(CString strPath)
{
CFileFind Findwork;
CString path = strPath;
path = path + "\\*.*";
CfindfileDlg::Dir_struct dir_init;
dir_init.bsucdir = 0;
dir_init.subdric_name = "Rootdir";
CfindfileDlg::Dir_struct* dir = new Dir_struct(dir_init);//开辟内存空间
Dir_struct* sumdir;
BOOL bFindwork = Findwork.FindFile(path);
while(bFindwork)
{
bFindwork = Findwork.FindNextFile();
if (Findwork.IsDots()) //IsDots判断是否为点--这个要说明一下,用过Dos的话,就应该知道,每个目录下都有缺省的两个目录,名称分别为 '. '和 '.. ',分别代表上一层目录和本层目录。
{
continue;
}
if (Findwork.IsDirectory())
{
CString path1 = Findwork.GetFilePath();
// m_list.AddString(Findwork.GetFileName());
sumdir = fun(path1);
sumdir->subdric_name = Findwork.GetFileName();
dir->Subdric.push_back(sumdir);
}
else
{
CfindfileDlg::FileMsg_struct FileMsg_init;
FileMsg_init.File_lawritetime="";
FileMsg_init.File_name="";
FileMsg_init.File_path="";
FileMsg_init.bResult=0;
CfindfileDlg::FileMsg_struct* FileMsg = new FileMsg_struct(FileMsg_init);
FileMsg->File_name.Format("%s",Findwork.GetFileName());
FILETIME ft;
Findwork.GetLastWriteTime(&ft);
// TRACE("%d %d\r\n",ft.dwHighDateTime,ft.dwLowDateTime);
CTime ct(ft);
FileMsg->File_lawritetime.Format("%d年%d月%d日-%d:%d:%d",ct.GetYear(),ct.GetMonth(),ct.GetDay(),ct.GetHour(),ct.GetMinute(),ct.GetSecond());
// TRACE("filename=%s lasttime=%s\r\n",FileMsg->File_name,FileMsg->File_lawritetime);
dir->File.push_back(FileMsg);
}
}
Findwork.Close();
return dir;
}
如果是的话,我这里有一点之前写的代码给你给你参考下:
struct FileMsg_struct
{
CString File_name;
CString File_path;
CString File_lawritetime;
byte bResult;
};
struct Dir_struct
{
vector
CString subdric_name;
vector
byte bsucdir;
};
CfindfileDlg::Dir_struct* CfindfileDlg::fun(CString strPath)
{
CFileFind Findwork;
CString path = strPath;
path = path + "\\*.*";
CfindfileDlg::Dir_struct dir_init;
dir_init.bsucdir = 0;
dir_init.subdric_name = "Rootdir";
CfindfileDlg::Dir_struct* dir = new Dir_struct(dir_init);//开辟内存空间
Dir_struct* sumdir;
BOOL bFindwork = Findwork.FindFile(path);
while(bFindwork)
{
bFindwork = Findwork.FindNextFile();
if (Findwork.IsDots()) //IsDots判断是否为点--这个要说明一下,用过Dos的话,就应该知道,每个目录下都有缺省的两个目录,名称分别为 '. '和 '.. ',分别代表上一层目录和本层目录。
{
continue;
}
if (Findwork.IsDirectory())
{
CString path1 = Findwork.GetFilePath();
// m_list.AddString(Findwork.GetFileName());
sumdir = fun(path1);
sumdir->subdric_name = Findwork.GetFileName();
dir->Subdric.push_back(sumdir);
}
else
{
CfindfileDlg::FileMsg_struct FileMsg_init;
FileMsg_init.File_lawritetime="";
FileMsg_init.File_name="";
FileMsg_init.File_path="";
FileMsg_init.bResult=0;
CfindfileDlg::FileMsg_struct* FileMsg = new FileMsg_struct(FileMsg_init);
FileMsg->File_name.Format("%s",Findwork.GetFileName());
FILETIME ft;
Findwork.GetLastWriteTime(&ft);
// TRACE("%d %d\r\n",ft.dwHighDateTime,ft.dwLowDateTime);
CTime ct(ft);
FileMsg->File_lawritetime.Format("%d年%d月%d日-%d:%d:%d",ct.GetYear(),ct.GetMonth(),ct.GetDay(),ct.GetHour(),ct.GetMinute(),ct.GetSecond());
// TRACE("filename=%s lasttime=%s\r\n",FileMsg->File_name,FileMsg->File_lawritetime);
dir->File.push_back(FileMsg);
}
}
Findwork.Close();
return dir;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
正方形一边上任一点到这个正方形两条对角线的 |
阴历怎么看 ? |