c++ - 打开错误文件的错误信息

标签 c++ qt visual-c++ file file-association

<分区>

我正在使用 qt 开发 C++ 代码的接口(interface),所以我想知道如何检查用户从打开的文件打开它的文件类型,因为程序只接受视频文件。如果文件不是视频文件,我想显示错误消息。

提前致谢:)

最佳答案

文件“类型”只是一种简化。在现代操作系统上,从操作系统的角度来看,所有磁盘文件都是平等的(它们只是字节序列),文件的“类型”仅取决于读取/写入这些文件的程序。在过去,许多操作系统用于区分例如。介于二进制文件和文本文件之间,但那些时代几乎完全消失了。

使文件类型“明显”的常用方法是使用命名约定...即名称以“.mpg”结尾的文件可能是使用 MPEG 标准编码的视频文件,或者“.txt"文件可能包含人类可读的文本。

因此您有两个选择...或者您只是根据文件名过滤文件列表(例如,您只接受以“.mp4”、“.mpg”、“.mpeg”、“.avi”结尾的文件, ".wmv", ".webm", ".ogg"... - 仅举几个常见的视频文件扩展名)或者你只是尝试将任何文件传递给程序,程序将决定它是否可以播放它或不。如果程序是一个好的程序,如果它不能理解特定的文件格式,它就会优雅地失败,而不仅仅是崩溃。

请注意,即使您使用的是 Qt(一个可移植的库),如果可接受的视频文件编码取决于操作系统甚至单个安装(因为视频/编解码器编解码器),我也不会感到惊讶通常是系统上可能安装或未安装的“插件”)。

如果您真的想限制文件名,那么请记住添加一种方法来选择扩展名不在列表中的文件。每次你在你的程序中列举东西时,你首先是有点傲慢(一个列表意味着你知道所有可能的情况,你认为你真的知道吗?)并且你正在为 future 的兼容性设置障碍(例如下一版本的播放器程序也可以处理 .wzz 视频文件,但由于允许扩展名列表中的愚蠢限制,您的程序将无法播放它们。

关于c++ - 打开错误文件的错误信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6087264/

相关文章:

c++ - 如何通过 Crypto++ 和 RSA 对文件进行签名

c++ - 寻找最佳方法背后的逻辑

c++ - 如何使用 `is_member_function_pointer` 包含/排除算法中的成员函数调用?

c++ - 类型转换为整数

c++ - 由于多个* .ui文件而导致多个Ui_Dialog定义?

c++将罗马数字转换为小数

c++ - 是否必须在同一个文件中声明 C++ 内联函数?

c++ - 管理退出程序的转义键

c++ - 我需要一个 SQL 服务器来使用 Qt 的 QtSql 库吗?

c++ - 如何缩小 WTL 应用程序的大小?