gpt4 book ai didi

C语言编程: program reads 'Desktop' folder as 'DEsktop' with capital E

转载 作者:行者123 更新时间:2023-11-30 17:18:48 27 4
gpt4 key购买 nike

因此,我正在构建的 C 程序必须放置在我的 MAC 计算机 (OS X 10.9.4) 桌面上的 PA_mobile 文件中,以便它可以访问脚本和文本文件缓存与之相关。

现在,当我的程序启动时,它会验证当前工作目录,将其与包含正确工作目录的字符串变量进行比较,如果程序不在桌面上,则请求更改工作目录。

这是与目录路径验证相关的代码:

char* cwd_2;
char buff[PATH_MAX + 1];

cwd_2 = getcwd( buff, PATH_MAX + 1 );
char desired_working_directory[50] = "/Users/haydn/Desktop/PA_mobile";
if( cwd_2 != NULL )
{
printf("\n-----------------------------------");
printf("\nCurrent working directory: [%s]\n", cwd_2 );
usleep(10000);
printf("Desired working directory: [%s]\n",desired_working_directory);
usleep(50000);

if(strcmp(desired_working_directory, cwd_2) == 0)
{
fflush(stdout);
printf("Appropriate Working Directory achieved!\n");

printf("-----------------------------------");
}
else
{
printf("Critical Error: inapropriate working directory!\n");
printf("please relocate the 'PA_mobile' file to [/users/user/Desktop] and re-launch\n");
getchar();
exit();
}
}

程序会比较由 cwd_2 变量确定的当前工作目录路径,并将其与 desired_working_directory 变量中描述的所需工作目录路径进行比较。

现在这是程序运行时显示的内容:

-----------------------------------
Current working directory: [/users/haydn/DEsktop/PA_mobile]
Desired working directory: [/Users/haydn/Desktop/PA_mobile]
Critical Error: inapropriate working directory!
please relocate file to [/users/haydn/Desktop] and re-launch

请注意,显示的当前工作目录(由 getcwd( buff, PATH_MAX + 1 ); 函数确定)将桌面文件描述为 DEsktop 而不是 Desktop 正如它的意思。我已经检查了实际的桌面文件夹,它的拼写没有大写 E,大写 E 似乎导致了问题,并且仅存在于这段代码中,任何人都可以帮忙我?

最佳答案

如果您运行 diskutil list/ (或在 Mac OSX 的后续变体上运行 diskutil info/),您将看到文件系统是否区分大小写。如果这些目录位于单独的文件系统中,您可能需要在层次结构中低于 / 的文件系统上执行此操作。

您还可以尝试以下命令序列:

touch /Users/haydn/Desktop/xyzzy
touch /Users/haydn/Desktop/xyzzY
ls /Users/haydn/Desktop/xyzz*

并查看有多少个文件。 1 表示不区分大小写,2 表示区分大小写。

这是文件系统的个性决定的,除非它提到区分大小写,否则您可以假设它不是。

在这种情况下,这些之间没有区别:

/users/haydn/DEsktop/PA_mobile
/Users/haydn/Desktop/PA_mobile
^ ^

尽管字母不同。

如果您确定这就是问题所在,那么您的代码确实应该进行调整以处理这两种情况。这个问题(及其答案)提供了在代码中执行此操作的方法。

关于C语言编程: program reads 'Desktop' folder as 'DEsktop' with capital E,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29074337/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com