如何在C程序中获取当前文件夹的父目录?
我想获取当前文件夹的父目录,我有程序。 我需要包含在我有的C程序中。我试图通过字符串方法来解决它,但我觉得可以有更好更简单的方法。例如:如果他的路径是“C:\ Application \ Config”,那么我想得到 - “C:\ Application”正义的父路径。
有人可以帮助我吗?如何在C程序中获取当前文件夹的父目录?
感谢, 普里
要就地在其最后一个反斜杠截断的字符串:
char pathname[MAX_PATH];
GetCurrentDirectory(MAX_PATH, pathname);
char* last_backslash = strrchr(pathname, '\\');
if (last_backslash)
{
*last_backslash = '\0';
}
还有PathRemoveFileSpec(),它基本上做同样的事情。 – Luke 2011-03-08 16:19:04
在Windows操作系统中,你需要的API函数被调用GetCurrentDirectory()。
http://msdn.microsoft.com/en-us/library/aa364934%28v=vs.85%29.aspx
有时候,只是如果你不怕被MAX_PATH
加入\..
就足够了。
很难回答你的问题,因为你一旦拥有它,你还没有真正指定你想要的路径。如果你想改变到新的目录,那很简单,你只需要使用你通常用来改变目录的函数,但是把它传递给“..”而不是完整的路径 - 这是因为在所有理智的文件系统上,“..”是一个'魔术'目录,它存在于所有其他目录中,并且指向其父目录。
如果你想在跳到它之前在新目录上执行一些字符串函数,你的问题立即变得更加难以解决。我这样做的方式反映了RichieHindle的解决方案 - 将当前目录从完整路径上剥离,然后您将父目录的路径留下,您可以根据这个路径仔细查看您的内容。
该程序必须运行哪些操作系统? – nmichaels 2011-03-08 14:12:37
示例路径暗示Windows – Ferruccio 2011-03-08 14:16:23
@Ferruccio:是的,但这并不意味着它只是Windows。 – nmichaels 2011-03-08 14:21:05