社区
工具平台和程序库
帖子详情
紧急求助~~~~在线等待,分不是问题,要多少给多少,请各位高手帮忙~~~~
cuistar
2003-09-03 09:48:21
给定一个目录,列出其中的所有文件(包括子目录下的文件),要求用对话框实现,要VC源程序全部代码(包括对话框函数对类函数的调用)。
...全文
55
5
打赏
收藏
紧急求助~~~~在线等待,分不是问题,要多少给多少,请各位高手帮忙~~~~
给定一个目录,列出其中的所有文件(包括子目录下的文件),要求用对话框实现,要VC源程序全部代码(包括对话框函数对类函数的调用)。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ljan
2003-09-04
打赏
举报
回复
CFileFind没有,不过很简单,操作成员函数就可以了
cuistar
2003-09-04
打赏
举报
回复
谢谢高手,再问一下,有没有用CFileFind来写的程序啊????
ezhou
2003-09-03
打赏
举报
回复
mark.
ljan
2003-09-03
打赏
举报
回复
或者你可以用CFileFind来写
ljan
2003-09-03
打赏
举报
回复
// File.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "Shlobj.h"
//#include <comdef.h>
#include <tchar.h>
#include "stdio.h"
#include "conio.h"
//
// This method converts a STRRET structure to a LPTSTR
//
IMalloc* pMalloc;
LONG StrRetToStr(STRRET StrRet, LPTSTR* str, LPITEMIDLIST pidl)
{
HRESULT hr = S_OK;
int cch;
LPSTR strOffset;
*str = NULL; // Assume failure
switch (StrRet.uType)
{
case STRRET_WSTR:
cch = WideCharToMultiByte(CP_OEMCP, 0, StrRet.pOleStr, -1, NULL, 0, NULL, NULL);
*str = (LPTSTR)pMalloc->Alloc(cch * sizeof(TCHAR));
if (*str != NULL)
WideCharToMultiByte(CP_OEMCP, 0, StrRet.pOleStr, -1, *str, cch, NULL, NULL);
else
hr = E_FAIL;
break;
case STRRET_OFFSET:
strOffset = (((char *) pidl) + StrRet.uOffset);
cch = strlen(strOffset) + 1; // NULL terminator
*str = (LPTSTR)pMalloc->Alloc(cch * sizeof(TCHAR));
if (*str != NULL)
strcpy(*str, strOffset);
else
hr = E_FAIL;
break;
case STRRET_CSTR:
cch = strlen(StrRet.cStr) + 1; // NULL terminator
*str = (LPTSTR)pMalloc->Alloc(cch * sizeof(TCHAR));
if (*str != NULL)
strcpy(*str, StrRet.cStr);
else
hr = E_FAIL;
break;
}
return hr;
}
void PrintFile(IShellFolder* pFolder, IMalloc* pMalloc)
{
IEnumIDList* pItems = NULL;
LPITEMIDLIST pidlNext = NULL;
STRRET StrRetName;
LPTSTR lpszName = NULL;
// Enumerate all object in the given folder
HRESULT hr = pFolder->EnumObjects(NULL, SHCONTF_FOLDERS|SHCONTF_NONFOLDERS, &pItems);
while(hr == NOERROR)
{
hr = pItems->Next(1, &pidlNext, NULL);
if(NOERROR == hr)
{
pFolder->GetDisplayNameOf(pidlNext, SHGDN_NORMAL, &StrRetName);
StrRetToStr(StrRetName, &lpszName, pidlNext);
printf("%s ", lpszName);
if(lpszName)
pMalloc->Free(lpszName);
}
}
if(pItems)
pItems->Release();
}
int main(int argc, char* argv[])
{
wchar_t path[MAX_PATH];
printf("请输入文件夹绝对路径:\n");
wscanf(L"%ls", path);
// wprintf(L"%s", path);
CoInitialize(NULL);
// Get a pointer to the IMalloc interface
HRESULT hr = SHGetMalloc(&pMalloc);
if(FAILED(hr))
return hr;
IShellFolder* pDesktop;
hr = SHGetDesktopFolder(&pDesktop);
if(FAILED(hr))
return hr;
ULONG chEaten;
ULONG dwAttributes;
LPITEMIDLIST pidlFolder = NULL;
LPOLESTR strPath = path;
hr = pDesktop->ParseDisplayName(NULL, NULL, strPath, &chEaten,
&pidlFolder, &dwAttributes);
if(FAILED(hr))
return hr;
IShellFolder* pFolder;
hr = pDesktop->BindToObject(pidlFolder, NULL, IID_IShellFolder, (void**)&pFolder);
pDesktop->Release();
if(FAILED(hr))
return hr;
// Print subfolder and file
PrintFile(pFolder, pMalloc);
CoUninitialize();
getch();
return 0;
}
正好是我以前的一个小例子...
我在CSDN参与的3000个帖子
2:100
分
急求,随机输出十个小写字母,但是,要求这十个字母不相同 3:求Sn=a+aa+aaa+…+aaa…a(n个a)之值 4:数组题 望
高手
帮忙
! 5:呵呵,来推荐一下我的网站,本站提供大量当今流行的免费的音乐和免费电影,...
基础
各位兄弟,在SDK编程中如果实现窗口
分
割呢?
请
问怎么得到一个函数的执行时间,单位毫秒!如何调试asp组件呀。用vc++调试编制的组件怎样画一个箭头?高
分
请
教如何限制程序运行的方法?
求助
:通过编程DirectX抓屏-----...
WEB开发文档2 总结
转自:http://blog.donews.com/lvjiyong/archive/2006/06/29/931071.aspx怎样将后台生成的在内存中的图象显示到客户端Microsoft IE WebControls下载地址如何在DATAGRID中使用JAVASCRIPT脚本控制DataGrid...
请
大虾指教那
测试dddd
--------------------------------------------我也来试着
分
析下你想以低价来占领市。----------------------------------...比方说,你有 10 万元,第一年增值 20%,就变成 12 万,第二年也增值 20%,那可不是 14 万。
数据库帖子收集
这样的数据列表在存储过程中应该怎么样选择得到?
请
问造成SQL2000服务不能启动的原因有哪些? sql server中有無類似于if 的函數,即像這樣select if(cancel=1,'cancel','') from ...都要处理哪些内容!需要每月进...
工具平台和程序库
24,855
社区成员
27,329
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章