我知道了一个文件的句柄后,请问应该怎么样才能得到它的路经?

lhzj 2003-04-27 06:08:59
能不能给出一段代码?谢谢!
...全文
33 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
lhzj 2003-05-03
  • 打赏
  • 举报
回复
哎,还不是很白
yndfcd 2003-04-29
  • 打赏
  • 举报
回复
可以HOOK Windows的CreateFile。创建一个链表,将所有的文件内核对象所对应的文件名保存在这个链表中,要得到文件时直接查这个链表就行了,这种方法也不会很容易,不过可能比用VxD要容易一点。
o_racle 2003-04-28
  • 打赏
  • 举报
回复
帮你UP!!!
功名半纸 2003-04-28
  • 打赏
  • 举报
回复
句柄是内核创建的,你需要查询内核句柄信息!!!需要用到NAIIVE API!!!!


帮你UP!!!
peterretep 2003-04-28
  • 打赏
  • 举报
回复
首先根据句柄构造CFile对象,然后使用GetFilePath()方法取得路径
wangn1974 2003-04-28
  • 打赏
  • 举报
回复
你是使用基于CView建立的文档结构。
可以在CBmptransDoc类(你建立的CDocument类)中增加一个函数即可。
class CBmptransDoc : public CDocument
{
public:
virtual BOOL OnOpenDocument(LPCTSTR lpszPathName);
};
系统在打开文件时自动将全路径文件名加入到lpszPathName中。
fingerfox 2003-04-28
  • 打赏
  • 举报
回复
楼上的不对。
偶来学习。
zweb 2003-04-28
  • 打赏
  • 举报
回复
GetWindowModuleFileName
这个函数听说有点行。
lhzj 2003-04-28
  • 打赏
  • 举报
回复
谢谢,
不过,我感觉我听我越不明白了,
quengzi 2003-04-28
  • 打赏
  • 举报
回复
呵呵!不好意思,着急看错了!寻找测试中。。。。
quengzi 2003-04-28
  • 打赏
  • 举报
回复
BOOL GetFileInformationByHandle(
HANDLE hFile, // handle of file
LPBY_HANDLE_FILE_INFORMATION lpFileInformation // pointer to structure
);
typedef struct _BY_HANDLE_FILE_INFORMATION { // bhfi
DWORD dwFileAttributes;
FILETIME ftCreationTime;
FILETIME ftLastAccessTime;
FILETIME ftLastWriteTime;
DWORD dwVolumeSerialNumber;
DWORD nFileSizeHigh;
DWORD nFileSizeLow;
DWORD nNumberOfLinks;
DWORD nFileIndexHigh;
DWORD nFileIndexLow;
} BY_HANDLE_FILE_INFORMATION;
jiadrun 2003-04-28
  • 打赏
  • 举报
回复
帮你UP!!!
NowCan 2003-04-28
  • 打赏
  • 举报
回复
难度较大。
zebrali 2003-04-27
  • 打赏
  • 举报
回复
即使不知道文件的句柄,也可以知道文件的路径。CFile::GetFilePath()
lhzj 2003-04-27
  • 打赏
  • 举报
回复
是不是太简单了,大家懒得回答吗?

15,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧