济南模版网站,跨境电商网站如何做推广方案,进销存永久免费,培训网页今天在开发过程中遇到了个软件在Linux系统和Windows系统下功能表现不一致的bug#xff0c;具体表现为#xff1a; 插入一张图片#xff08;A文件夹中的001.jpg#xff09;#xff0c;然后使用“图片替换”功能#xff0c;用B文件夹中的图片#xff08;B文件夹中的001.JP…今天在开发过程中遇到了个软件在Linux系统和Windows系统下功能表现不一致的bug具体表现为 插入一张图片A文件夹中的001.jpg然后使用“图片替换”功能用B文件夹中的图片B文件夹中的001.JPG进行同名替换在Windows系统下图片替换成功而在Linux系统下相同的操作版面上的图片提示“缺图”。
最后排查到的原因是 这是由Linux和Windows的系统差异造成的在Windows系统下文件的后缀名是不区分大小写的在Linux系统下文件的后缀名是严格区分大小写的。 简单来说就是Linux系统下1.JPG和1.jpg是两张不同的图片它们可以同时出现在同一个文件夹下而Windows系统下这种情况是绝对不会发生的。
在这里附上windows和linux下用来判断文件是否存在的方法。
1.Windows系统 _waccess 函数
函数功能int _waccess(const wchar_t* filename, int mode);用于文件或目录是否存在、检查文件或目录的访问权限
参数说明 • filename要检查的文件或目录的路径。 • mode要检查的访问模式可以是以下值之一 F_OK检查文件是否存在。 R_OK检查文件是否可读。 W_OK检查文件是否可写。 X_OK检查文件是否可执行。
代码示例
#include stdio.h
#include io.hint main()
{// 测试文件是否存在const wchar_t* filename LD:\\MyApp.ini;// 第二个参数 mode 0表示不指定任何访问权限 if (_waccess(filename, 0) ! 0){fprintf(stderr, File does not exist.\n);return 1;}printf(File exists.\n);return 0;
}2.Linux系统_access函数
函数功能int _access( const char *filename, int mode );用于文件或目录是否存在、检查文件或目录的访问权限
参数说明 • filename要检查的文件或目录的路径。 • mode要检查的访问模式可以是以下值之一 F_OK检查文件是否存在。 R_OK检查文件是否可读。 W_OK检查文件是否可写。 X_OK检查文件是否可执行。
代码示例
int main()
{const char* filename D:\\MyApp.ini;// 检查文件是否存在if (_access(filename, 0) 0) {printf(File exists\n);}else {printf(File does not exist\n);}return 0;
}