如何在C程序中获取当前文件夹的父目录?

时间:2011-03-08 14:08:51

标签: c windows dos

我正在尝试获取我拥有该程序的当前文件夹的父目录。 我需要包含在C程序中。我尝试通过字符串方法来解决它,但我觉得可以有更好更简单的方法。例如:如果他的路径是“C:\ Application \ Config”,那么我想得到 - “C:\ Application”只是父路径。
有人可以帮帮我吗?

谢谢, 普里

4 个答案:

答案 0 :(得分:4)

就地删除最后一个反斜杠的字符串:

char pathname[MAX_PATH];
GetCurrentDirectory(MAX_PATH, pathname);
char* last_backslash = strrchr(pathname, '\\'); 
if (last_backslash)
{
    *last_backslash = '\0';
}

答案 1 :(得分:1)

如果您不害怕\..,有时只需添加MAX_PATH即可。

答案 2 :(得分:1)

很难回答你的问题,因为一旦你拥有它,你还没有真正指定你想要的东西。如果你想更改到新目录,这很简单,你只需使用你通常用来更改目录的任何功能,但是将它传递给“..”而不是完整路径 - 这是因为在所有理智的文件系统上,“......”是一个“魔术”目录,存在于所有其他目录中并引用其父目录。

如果你想在跳转到目录之前在新目录上执行某些字符串功能,你的问题会立即变得更加难以解决。我这样做的方式反映了RichieHindle的解决方案 - 将当前目录从完整路径中剥离出来,然后留下父目录的路径,您可以用它来查看心脏的内容。

答案 3 :(得分:0)

在Windows操作系统中,您需要的API函数称为GetCurrentDirectory()。

http://msdn.microsoft.com/en-us/library/aa364934%28v=vs.85%29.aspx