【发布时间】:2018-02-20 16:46:21
【问题描述】:
我将共享驱动器路径作为输入并添加额外的“\”并分配给一个变量。如果我使用此变量打开“fopen”文件,则会抛出“无此类文件或目录”错误。
但如果我在代码本身中给出相同的路径(路径中带有额外的“\”),我就可以访问。
命令:程序\\xyz\abc.txt(程序名称)
1)我的代码不起作用是这样的:
在程序中,我通过添加额外的“\”将传入的输入路径设为"\\\\xyz\\abc.txt"。
然后,fopen(var_name,"r"); /* 不工作*/
2) 运行良好的代码:
char arr[100] = "\\\\xyz\\abc.txt"
fopen(arr,"r"); /* works fine */
如果路径在编译时已知,它本身正在工作,但在运行时不知道。请建议我可以做些什么来从程序中未硬编码的输入访问路径。
【问题讨论】:
-
作为会员这么久,您应该真的有足够的时间阅读the help pages,尤其是名为"What topics can I ask about here?" 和"What types of questions should I avoid asking?" 的部分。还有take the tour 和read about how to ask good questions。最后学习如何创建Minimal, Complete, and Verifiable Example。
-
运行时不需要添加`\`;这仅在编译时是必需的。作为用户,您可能在运行程序时需要转义反斜杠,具体取决于您使用的shell以及引用参数的方式。
-
@Roger Lipscombe 感谢您的回复。相同的代码适用于 C:\ 或 D:\ 等本地驱动器我只面临共享驱动器的问题。
-
通常,在被盯着看的驱动器上,文件名的第一部分是前面有两个斜杠的“共享”的名称。 IE。
\\<sharename>\<path>\<filename>