2016-11-12 84 views
0

我想在其他目录中创建文件,而不是保存原始程序的位置。如何更改C语言中的浏览目录

FILE * fp; 
fp=fopen("a.txt","w"); 

但我想更改创建/写入文件的目录。

+0

在Linux和POSIX上,阅读[chdir(2)](http://man7.org/linux/man-pages/man2/chdir.2.html)。但请阅读http://advancedlinuxprogramming.com/第一个 –

回答

0

一般fopen是syntaxed这样的:

fopen("path/to/file", ...)

如果只有一个名字被赋予,那么它被认为是在同一个文件夹中的可执行文件。所以,如果你想要做的东西,在另一个文件夹中要加上该文件夹的路径是这样的:

fp = fopen("<path>/a.txt", "w");

1

这取决于你所使用的操作系统的类型。

如果您使用的是Linux或类似的系统,你想创建一个目录/home/username/folder文件(假设你有在该目录写权限),你可以简单地做:

FILE * fp; 
fp=fopen("/home/username/folder/a.txt","w"); 

如果您使用的是Windows,并且希望在C:\Users\username\folder创建一个文件(假设写权限),你可以这样做:

FILE * fp; 
fopen("C:\\Users\\username\\folder\\a.txt", "w"); 

请注意,您必须逃避在Windows平台上的路径\角色,因为当我们有一个\(反斜杠),它被解释为一个转义序列,并与下一个字符隐含关联,如\n\t。但由于我们没有使用任何转义序列,并且想要一个实际的\,我们必须为它插入一个转义序列\\

正如@stark所指出的那样,我们也可以在字符串中使用/(正斜杠)代替\\

+1

Windows已经接受了正向斜线,直到永远。 – stark

+0

好的谢谢,但我想问你,为什么你在你的路径中使用\\? – CraizeeNube

+0

@CraizeeNube:我为此添加了一个解释。 – skrtbhtngr