
C语言如何判断文件名是否合法,可以通过检查文件名的字符、检查文件名的长度、检查文件名的扩展名、检查文件名是否存在等方法来实现。检查文件名的字符是其中最基础也是最重要的一步,因为文件名中不能包含某些非法字符。下面将详细描述如何在C语言中实现这些方法。
一、检查文件名的字符
在操作系统中,文件名通常不能包含某些特殊字符。例如,在Windows系统中,以下字符是非法的:/ : * ? " < > |。在Linux系统中,文件名不能包含/和空字符。我们可以编写一个函数来检查文件名中是否包含这些非法字符。
代码示例
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
bool is_valid_char(char c) {
#ifdef _WIN32
// Windows非法字符
const char *illegal_chars = "/\:*?"<>|";
#elif __linux__
// Linux非法字符
const char *illegal_chars = "/";
#endif
return (strchr(illegal_chars, c) == NULL);
}
bool is_valid_filename(const char *filename) {
for (int i = 0; filename[i] != '