我的程序的一部分需要从用户获取文件路径,然后移动并重命名该文件。
如果我使用这样的相对路径:
#include <stdio.h>
int main() {
int check;
char oldname[] = "images//test_1.jpg";
char newname[] = "images//test//test_2.jpg";
check = rename(oldname, newname);
if (check == 0)
puts("Success");
else
perror("Failed");
return 0;
}
效果很好。
但是如果我尝试使用这样的绝对路径:
char oldname[] = "c://path//images//test_1.jpg";
char nername[] = "c://path//images//test//test_2.jpg";
它失败并说“失败:没有这样的文件或目录”
我确信这是一个愚蠢的错误,但不管我多少次检查我的文件路径和代码,我都无法理解。任何建议都将不胜感激。
哦,如果它有任何区别我在linux上工作。
答案 0 :(得分:0)
如果它在linux服务器上运行,则需要使用linux服务器上的路径。您可以使用pwd
打印工作目录(它将为您提供当前所在的绝对路径)。您还可以使用..
的相对路径来上一个目录。例如,您的目录结构可能是这样的
code/
main.cpp
main.h
a.out
images/
yourimage.png
所以你可以这样做:
$ pwd
/home/user/code
然后你的图像绝对路径是
/home/user/images/yourimage.png
或者您可以使用代码目录中的相对路径
../images/yourimage.png