什么是C中的相对路径?

时间:2012-07-15 15:31:23

标签: c fopen

我现在正在使用Visual C++ 2010打开一个txt文件。

fp = fopen("E:\\CProg\\Huffman\\Debug\\Huffman.txt","r"); //Right
//Wrong
//fp = fopen(".\\Huffman.txt","r");
//fp = fopen("\\Huffman.txt","r");
//fp = fopen("Huffman.txt","r");

在VB.NET中,我曾经这样写过:Application.Startpath& “\”。然后我如何在C中制作它?

1 个答案:

答案 0 :(得分:2)

相对于什么?在“所有相关平台”上,如果您使用的文件名不是绝对的,则会相对于当前目录进行解析。

以下内容适用于Windows。

如果您正在编写控制台应用程序,则应用程序将从当前目录开始,该目录设置为命令提示符所显示的内容。如果没有进一步的研究,我无法分辨GUI应用程序的初始当前目录是什么。

如果您希望您的文件名相对于安装目录,则必须使用类似Win32函数的GetModuleFileNameW()并从那里开始工作(该函数为您提供exe文件的路径名;删除最后一个用于获取目录的组件,并附加您要追加的任何路径) -

没有直接的说法“我希望相对于安装目录使用此文件名”。