使用ReadDirectoryChangesW捕获到了发生改变的文件名,谁知道如何获得文件的绝对地址?问题解决即给分。别的方法也行。
解决方案 »
- 求一个treelistctrl类,内详!谢谢
- 全局钩子失效只对加载他的进程有效(谢谢各位大虾们)
- win32 无法调用 封装 opengl 基本操作的动态链接库
- 关于HINSTANCE 和HANDLE 的问题
- 怎样把指针型变量转成字符串型
- (你们都理解错了,重新来)高手请进:VC,一个基于CFormView类建立的单文档应用程序中关于如何调用不同的那个类似对话框的客户区
- 关于vc++结合openGL编程!
- 树形视图(win32,非MFC控件)如何插入一个子节点
- delete 之后释放的内存是否就增加了空间,还是不一定?
- 如何显示自己创建的窗口??(我已Create,用ShowWindow(SW_SHOW))但是不显示??why?
- 关于文件以及转换的几个问题
- CString类型作为输出参数的问题
CFileWatchDlg *obj=(CFileWatchDlg*)lParam;
obj->strWatchDir="F:\\文档";
obj->hDir=CreateFile(
obj->strWatchDir,
GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_DELETE|FILE_SHARE_READ|FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_FLAG_BACKUP_SEMANTICS,
NULL
);
if(obj->hDir==INVALID_HANDLE_VALUE)
return false;
char buf[1024];
FILE_NOTIFY_INFORMATION* pNotify=(FILE_NOTIFY_INFORMATION*)buf;
DWORD dwByteReturned;
while(true)
{
if(::ReadDirectoryChangesW(obj->hDir,
&buf,
sizeof(buf),
true,
FILE_NOTIFY_CHANGE_FILE_NAME|
FILE_NOTIFY_CHANGE_CREATION|
FILE_NOTIFY_CHANGE_DIR_NAME|
FILE_NOTIFY_CHANGE_ATTRIBUTES|
FILE_NOTIFY_CHANGE_SIZE|
FILE_NOTIFY_CHANGE_LAST_WRITE|
FILE_NOTIFY_CHANGE_LAST_ACCESS,
&dwByteReturned,
NULL,
NULL))
{
char tmp[MAX_PATH];
memset(tmp,0,sizeof(tmp));
WideCharToMultiByte(CP_ACP,0,pNotify->FileName,pNotify->FileNameLength/2,tmp,99,NULL,NULL); }
}
handle是通过obj->hDir=CreateFile的到了,如果在f:\文档下的某个文件夹里创建了一个文件ABC,怎么获得ABC的绝对路径。事先不知道文件夹名。