0

我的程序的一部分需要从用户那里获取文件路径,然后移动和重命名所述文件。

如果我使用这样的相对路径:

#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 中工作。

4

1 回答 1

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
于 2013-11-04T23:31:05.613 回答