我们可以传递一个带有空格的路径字符串作为fopen()的参数吗?

时间:2013-05-03 14:20:47

标签: c file-io path fopen

我正在使用fopen(),我需要打开一个文件,在其中传递路径,其中包含空格作为参数。这是我的代码:

FILE * pFile;
pFile = fopen ("\this folder\myfile.txt","w");

这样可以正常工作还是我需要在那里添加一些东西来识别空间?谢谢。

4 个答案:

答案 0 :(得分:3)

空格可行,但您需要转义'\',但

pFile = fopen ("\\this folder\\myfile.txt","w")

答案 1 :(得分:3)

如果路径中有空格,则无需任何特殊操作。

pFile = fopen ("\\this folder\\myfile.txt","w");

应该有效。请注意字符串中所需的双反斜杠。

答案 2 :(得分:0)

不是pFile = fopen(“\ this folder \ myfile.txt”,“w”);

应该是pFile = fopen(“\ this folder \ myfile.txt”,“wb”);

答案 3 :(得分:0)

考虑:rawurlencode()

如果您尝试加载http://domain.com/path/to/file/filename has spaces.php等外部资源,则可能需要对网址进行编码以避免fopen()失败。

在这种情况下,您应该实际调用rawurlencode(),因为这会将所有必需的字符转换为%XY个字符,包括空格。常规urlencode()会将空格转换为+,但不会提供帮助。

警告:我还没有在广泛的字符串列表中对此进行测试,因此可能会产生一系列不同的问题,但在我能找到的所有情况下,它都适用于我。