我正在试图获取当前文件夹的父目录,我有程序。 我需要包含在我有的C程序中。 我试图通过string方法来解决它,但我觉得可以有一个更好,更简单的方法。 例如:如果他的path是“C:\ Application \ Config”,那么我想获得 – “C:\ Application”正义的父path。
有人可以帮我吗?
谢谢,Priyanka
就地截断最后一个反斜杠处的字符串:
char pathname[MAX_PATH]; GetCurrentDirectory(MAX_PATH, pathname); char* last_backslash = strrchr(pathname, '\\'); if (last_backslash) { *last_backslash = '\0'; }
有时只要添加\..
就足够了,如果你不害怕MAX_PATH
。
要回答你的问题是很困难的,因为你一旦拥有了路径,你还没有真正地指定你想要的。 如果你想改变到新的目录,这很简单,你只需要使用你通常用来改变目录的函数,但是把它传递给“..”而不是一个完整的路径 – 这是因为在所有理智的文件系统上,“..”是一个“魔术”目录,它存在于所有其他目录中,并指向其父目录。
如果您想在跳转到新目录之前执行一些字符串函数,您的问题将立即变得更加难以解决。 我这样做的方式反映了RichieHindle的解决方案 – 将当前目录从完整路径上剥离,然后您将父目录的路径留下,您可以使用它来挖掘您的内容。
在Windows操作系统中,您需要的API函数称为GetCurrentDirectory()。
http://msdn.microsoft.com/en-us/library/aa364934%28v=vs.85%29.aspx