我想用VC查找一个文件夹里的所有TXT文档中最新的一个 并读取它的内容 请问如何操作???

 我来答
百度网友5955729
2013-11-26 · TA获得超过118个赞
知道小有建树答主
回答量:148
采纳率:100%
帮助的人:101万
展开全部

给你一个思路先遍历这个文件夹下的txt文件,然后逐个创建比较时间,并保存最新的文件名到一个变量上面,然后用CFile::read 读取内容。

给你一段伪代码  自己修改试试

HANDLE hSearch; 
WIN32_FIND_DATA FileData, tempFileData;
        hSearch = FindFirstFile("E:\\XX\\*.txt", &FileData); //首先找到的是“.”
if (hSearch == INVALID_HANDLE_VALUE)return 0;
if (! FindNextFile(hSearch, &FileData))  return 0;     //然后找到的是“..”
FindNextFile(hSearch, &tempFileData);//把第一个文件的信息保存在tempFileData上
while (1) 

if (!FindNextFile(hSearch, &FileData)) 
break;
else
{
if(CompareFileTime(FileData.ftCreationTime ,tempFileData.ftCreationTime )==-1){
                         tempFileDataFileData
                         }
}
}
FindClose(hSearch);
        CFile file;
        file.open("路径+\\tempFileData.cFileName");
        char buf[xx];
        file.read(buf......);
        file.close();
追问

我的路径不是固定的    要选择一个文件夹       这个路径里不是有个"\"吗   但是文件操作时   路径里的应该是“\\”  两个斜杠    这个怎么处理呢         下图是我搞的     TXT文档的内容要显示在文件数据的框里

追答
  1. 路径:你可以定义一个CString patn变量 然后得到文件目录的路径,假设为m_strpath。

    path.format("%s%s",m_strpath,"\\*.txt");

    FindFirstFile("E:\\XX\\*.txt", &FileData); 改成FindFirstFile(path, &FileData); 

  2. 在字符串里面设路径时“\\”第一个"\"是用来转义的“\\”==\。你文本框里的\不用处理

  3. 你的数据都写在了buf中了,要显示还不简单,直接把buf的数据赋给文本数据框的变量,然后UPdateData(false);或者GetDlgItem(ID)->SetWindowsText(把buf转换成CString格式);

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式