如何获得重定向路径的实际路径
How to get Actual path of redirected path?
在64位上运行的32位进程将获得广义路径到重定向的路径,由于文件重定向。例如,如果进程从WindowsSysWOW64
运行,则调用GetCurrentDirectory
将得到结果:WindowsSystem32
。
虽然,很有可能确定32位进程是否在64位主机上运行。我正在寻找一个解决方案,给我正确的/实际的路径。比如ResolveWOWPathToActual path,它会为路径WindowsSystem32
提供WindowsSysWOW64
。
WCHAR szCurFolder[MAX_PATH];
PVOID dummy;
Wow64DisableWow64FsRedirection(&dummy);
GetCurrentDirectoryW(MAX_PATH, szCurFolder);
printf("Current Dir: %Sn", szCurFolder);
API函数GetFinalPathNameByHandle
可能满足您的需求。您必须打开文件或目录才能获得它的句柄。将该句柄传递给GetFinalPathNameByHandle
,它将为您提供文件的真实路径。不需要禁用文件系统重定向。
我想唯一可能的缺点是这确实需要您提供句柄而不是路径。
相关文章:
- 如何将stdout重定向到stderr
- 编写时C++中的输入重定向问题
- 获取通过重定向传入的输入文件的名称?
- Windows C++重定向库
- 写入文件 a.txt,而终端重定向到文件 b.txt
- 使用 dup2() 进行输入重定向
- 将 clangd stderr 重定向到文件而不是控制台
- 如何在C++中获取重定向网页的URL
- 将标准输出重定向到ostream
- 如何撤消此代码上的 cin 重定向?
- 使用重定向标准处理子进程中的 kbhit
- 是否可以将子进程的 stdout 重定向到父进程中的另一个文件?
- 重定向输入和输出时如何处理主文件I/O?
- 如何将HTTPS流量重定向到本地主机:443上的代理?
- 使用重定向命令从 stdin 读入的字符串"<"输入文件未正确附加
- 尝试在 Windows 上重定向 stdout 和 stderr——_fileno(stdout) 返回 -2
- 可以将Boost消息队列文件重定向到用户指定的位置
- 在程序执行期间从标准输出重定向到自定义流
- 如何使用PHP将上传到本地主机的一个html文件重定向到磁盘上的另一个html文档
- 如何获得重定向路径的实际路径