2016-11-12 68 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