我有一个Windows cpp应用程序,我想解析相对于特定目录的路径而不更改当前目录。这意味着我无法使用GetFullPathName
,因为它解析了相对于当前目录的路径。由于这是一个安全敏感的问题,我宁愿不自己动手,而是使用受制裁的API。
我四处寻找一个好的答案,但找不到任何东西。当然,这是Web服务器或多线程环境的常见问题。其他人怎么做?任何帮助将不胜感激。
例如:当数据位于C:\appfolder\exes\myapp.exe
时,您从C:\appfolder\data
运行应用。我想将sillyfolder\..\mydata.txt
解析为C:\appfolder\data\mydata.txt
。
答案 0 :(得分:-1)
标准(C ++或Win32)库似乎不会为您执行此操作。但是,建立相对路径是一个很好的练习。以下是一些有用的链接,了解如何启动(将脚本视为伪代码):
将绝对路径名转换为相对需要
转换将以字符串操作完成:
与Unix路径名不同(除了分隔符的“/”与“\”之外),Windows路径名还有其他复杂性:
对于后一种情况(UNC路径),如果当前和目标路径不在同一主机上,则相对路径无意义。但是,设备名称和路径名并没有紧密绑定在一起(请注意,Windows添加了稍后使用chdir更改设备的功能,作为option),并且根据应用程序,可以仅考虑设备之间的相对路径名路径部分。