从C ++中的文件名获取完整路径

时间:2013-02-21 07:53:44

标签: c++ windows path directory filenames

我正在使用C / C ++在Windows上开发应用程序。 我想知道,如何从file/directory获取filename/directory的完整路径?

例如: 我的文件名是test\test.txt,实际上它位于C:\Sample\test\test.txt,我的项目位于E:\MyProject

那么如何从文件名C:\Sample\test\test.txt获取完整路径,即test\test.txt。 同样适用于任何目录。

我尝试过使用GetFullPathName但它只返回E:\MyProject\test\test.txt,这是不正确的。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以查看Boost Filesystem

它处理所有常见的路径操作。

在你的情况下:

int main()
{
  using boost::filesystem::absolute;
  using boost::filesystem::path;

  std::cout << absolute(path("test\\test.txt"), path("C:\\Sample")) << std::endl;
}

请注意,absolute()的第二个参数是可选,并指定用于确定绝对路径的“当前路径”。可能你想要的是什么。