【发布时间】:2013-02-06 11:21:45
【问题描述】:
我正在使用 C/C++ 在 Windows 上开发一个应用程序。
我想知道,如何从filename/directory 获取file/directory 的完整路径?
例如:
我的文件名是test\test.txt,实际上它位于C:\Sample\test\test.txt,我的项目位于E:\MyProject。
那么我怎样才能从文件名test\test.txt 中获取完整路径,即C:\Sample\test\test.txt。
任何目录都一样。
我曾尝试使用 GetFullPathName,但它只返回 E:\MyProject\test\test.txt,这是不正确的。
提前致谢。
【问题讨论】:
-
所以您已经在 E:\MyProject 中运行了可执行文件,并且想通过仅提供 "test\test.txt" 从 C:\Sample\test\test.txt 打开文件?我说的对吗?
-
如果你的描述是准确的,那么,你不能。并非没有搜索整个硬盘驱动器,并且总是可能存在重复。你有一个相对路径。你怎么可能添加一开始就没有的信息?
-
其实
GetFullPathName会返回正确的答案。好吧,它返回了它应该得到的答案。但是你还没有完全指定你想要什么。看起来你是在要求魔法发生。您的下一步是以有意义的方式定义您的问题。 -
嗨,其实我使用
ReadDirectoryChangesW来监控文件/目录及其子目录。我添加了C:\Sample目录来监控,所以当对其中的任何文件/目录进行任何修改时,它都会通知。所以我想知道当test.txt被修改时,它返回我test\test.txt值,但我实际上想要C:\Sample\test\test.txt值,那么我该如何实现呢?我当前的工作目录也是E:\MyProject。希望这个解释清楚。
标签: c++ windows path directory filenames