7,655
社区成员
发帖
与我相关
我的任务
分享
CString zip_file_path;
CFileDialog file_dialog(TRUE, NULL, NULL, NULL, TEXT("*.zip|*.zip||"));
if (file_dialog.DoModal() != IDOK)
return;
zip_file_path = file_dialog.GetPathName();
OPENFILENAMEEX ofn = {0};
TCHAR szFile[MAX_PATH] = {0};
ofn.lStructSize = sizeof(ofn);
ofn.lpstrFilter = _T("ZIP Files (*.*)/0*.*/0");
ofn.lpstrFile = szFile;
ofn.nMaxFile = sizeof(szFile)/sizeof(szFile[0]);
ofn.lpstrInitialDir = _T("\\DOWNLOAD");
ofn.lpstrTitle = _T("选择数据文件");
ofn.ExFlags = OFN_EXFLAG_THUMBNAILVIEW | OFN_EXFLAG_HIDEDRMPROTECTED;
GetOpenFileNameEx(&ofn);
CString strFileName = ofn.lpstrFile;
void CDZQOPENFILEDLG::doFileEnumeration()
{ //枚举文件夹的内容
HANDLE hSearch; // FindFirstFile函数返回的句柄
WIN32_FIND_DATA fd; // 文件的数据结构
BOOL bFinished = FALSE; // 循环结束标志
//TCHAR *szFname = TEXT("\\*"); // 要查找的文件名
LPSYSTEMTIME filetime;
SYSTEMTIME systime;
FILETIME localtime;
CString szFname;
CString sFileName;
CString sFileExe;
LVITEM li;
li.iItem=5000;
li.mask=LVIF_TEXT;
int iItem;
int i;
i=m_ListView.GetItemCount();
while(i>1)
{//因为最后一行不能删除,所在要先判断是否大于一才执行.
i--;
m_ListView.DeleteItem(i);//删除内容
}
if (L"\\" == m_Path)
{
szFname= m_Path + L"*";
}
else
{
szFname= m_Path + L"\\*";
}
//先加入文件夹
hSearch = FindFirstFile(szFname, &fd);
if (hSearch == INVALID_HANDLE_VALUE)
{ //没找到,返回
return;
}
bFinished=false;
do
{
if ( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) )
{//是文件夹
li.pszText=fd.cFileName;
li.iSubItem=0;
iItem= m_ListView.InsertItem(&li);
m_ListView.SetItemText (iItem,1,L"文件夹");
FileTimeToLocalFileTime(&fd.ftLastWriteTime,&localtime);
FileTimeToSystemTime(&localtime,&systime); //最后修改日期
sFileExe.Format( L"%d/%d/%d %d:%d:%d",systime.wYear,systime.wMonth,systime.wDay ,systime.wHour ,systime.wMinute,systime.wSecond );
m_ListView.SetItemText (iItem,2,sFileExe);
}
if (!FindNextFile (hSearch, &fd))
{ //已经查找到最后一个文件,置结束标志
bFinished = TRUE;
}
} while (!bFinished);
for (i=0 ;i<m_CFileType[m_iType].iTypeNum ;i++)
{
if (L"\\" == m_Path)
{
szFname= m_Path + m_CFileType[m_iType].sTypeValue[i];
}
else
{
szFname= m_Path + L"\\" + m_CFileType[m_iType].sTypeValue[i];
}
// 确认是否有文件存在.
hSearch = FindFirstFile(szFname, &fd);
if (hSearch == INVALID_HANDLE_VALUE)
{ //没找到,返回
return;
}
bFinished=false;
do
{
if ( (fd.dwFileAttributes != FILE_ATTRIBUTE_DIRECTORY) )
{//是文件
sFileName=fd.cFileName;
if ( -1 ==SearchPos(sFileName,sFileExe,L"."))
{
sFileExe="";
}
li.iSubItem=0;
li.pszText=sFileExe.GetBuffer(0) ;
iItem= m_ListView.InsertItem(&li);
m_ListView.SetItemText (iItem,1,sFileName);
FileTimeToLocalFileTime(&fd.ftLastWriteTime,&localtime);
FileTimeToSystemTime(&localtime,&systime); //最后修改日期
sFileExe.Format( L"%d/%d/%d %d:%d:%d",systime.wYear,systime.wMonth,systime.wDay ,systime.wHour ,systime.wMinute,systime.wSecond );
m_ListView.SetItemText (iItem,2,sFileExe);
//CString arrivetime=2005年1月5日10时10分10秒
//int year,month,day,hour,min,second;
//sscanf(arrivetime,"%d年%d月%d日%d时%d分%d秒",&year,&month,&day,&hour,&min,&second);
}
if (!FindNextFile (hSearch, &fd))
{ //已经查找到最后一个文件,置结束标志
bFinished = TRUE;
}
} while (!bFinished);
}
FindClose (hSearch); // 关闭句柄.
}