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