Linux C/C++ 判断文件是否为视频文件 - 扩展名和魔术数字方法
"在Linux中,可以通过检查文件的扩展名或者文件的魔术数字来判断文件是否是视频文件。下面是两种方法的示例代码:\n\n1. 检查文件扩展名:\n\ncpp\n#include <iostream>\n#include <string>\n\nboolean isVideoFile(std::string filename) {\n std::string ext = filename.substr(filename.find_last_of(".") + 1);\n \n // 检查常见的视频文件扩展名\n if (ext == "avi" || ext == "mp4" || ext == "mkv" || ext == "mov") {\n return true;\n }\n \n return false;\n}\n\nint main() {\n std::string filename = "example.avi";\n if (isVideoFile(filename)) {\n std::cout << filename << " 是视频文件" << std::endl;\n } else {\n std::cout << filename << " 不是视频文件" << std::endl;\n }\n \n return 0;\n}\n\n\n2. 检查文件的魔术数字:\n\ncpp\n#include <iostream>\n#include <fstream>\n\nboolean isVideoFile(std::string filename) {\n std::ifstream file(filename, std::ios::binary);\n char magic[4];\n file.read(magic, 4);\n \n // 检查文件的魔术数字\n if (magic[0] == 'R' && magic[1] == 'I' && magic[2] == 'F' && magic[3] == 'F') {\n return true;\n }\n \n return false;\n}\n\nint main() {\n std::string filename = "example.avi";\n if (isVideoFile(filename)) {\n std::cout << filename << " 是视频文件" << std::endl;\n } else {\n std::cout << filename << " 不是视频文件" << std::endl;\n }\n \n return 0;\n}\n\n\n注意:这里的示例代码只是简单的检查文件的扩展名或者魔术数字,无法覆盖所有可能的视频文件类型。实际应用中可能需要更复杂的逻辑来判断文件是否是视频文件。\n
原文地址: https://www.cveoy.top/t/topic/p8HG 著作权归作者所有。请勿转载和采集!