问题标签 [qfileinfo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
qt - 仅从 Qt 中的给定 MIME 类型(无文件本身)获取文件图标
好的,我知道类QFileIconProvider
。我也知道QMimeType
(和QMimeDatabase
)。但令我惊讶的是,我找不到两者之间的简单联系。
所以我需要的是获取操作系统用于给定类型文件的图标。通常,这样做是这样的:
但是,如果我想获得一个不参考特定文件的图标,只针对给定的 MIME 类型怎么办?比如说,我的应用程序使用附件并跨多个设备同步;在某些设备上,附件可能不存在,但我知道该文件的 MIME 类型,所以我仍然希望我的应用程序显示正确的文件图标,仅使用 MIME 类型信息。
作为一个临时解决方案,我发现如果我在上面的代码字符串中将一个不存在的文件传递给 QFileInfo,它确实会检索一个正确的图标(显然,纯粹来自该不存在文件的扩展名),至少在 Linux 中是这样。但是这种方法没有记录,也不能保证它总是有效的。
所以我需要一些可以作为不存在的方法工作的东西 QFileIconProvider().icon(QMimeType &)
。
c++ - QFileInfo size() 正在返回快捷方式目标大小
我正在扫描这样的文件夹大小:
这似乎工作正常。
但是,我注意到包含 Windows 快捷方式 ( .lnk
) 的文件夹返回的大小比预期的要大得多。原因是返回的是快捷方式目标的大小,而不是快捷方式文件本身的大小。
但根据QFileInfo 文档:
在 Windows 上,符号链接(快捷方式)是 .lnk 文件。报告的 size() 是符号链接的大小(不是链接的目标)[...]
所以我的问题是:我在这里做错了什么?如何获取快捷方式文件的大小?
c++ - 为什么 QFileSystemWatcher 会发出多个信号?而QFileInfo第一次写入零文件大小
更改文件时,信号应该触发 1 次,但对我来说它可以工作多次。
在设置功能中,我要求尺寸并打印
更改文档后,信号处理了 2 次,尽管我保存了文档并更改了 1 次。
为什么 QFileSystemWatcher 会发出 2 次信号?
为什么 QFileInfo 在第一次请求时产生零大小?
我编辑文件记事本++
c++ - QT中如何判断一个项目是文件还是文件夹
我想从路径中指定项目是文件还是文件夹。如何实现这样的功能,它采用路径(QString
基于输入)并告诉它是文件还是文件夹?
pyqt5 - PyQt5 设置 qt_ntfs_permission_lookup
我想isWritable()
从 QFileInfo 使用。根据文档,您必须以某种方式设置qt_ntfs_permission_lookup
为 1 才能在 Windows 上获得有意义的结果。用于此的 C++ 代码是
如何将 extern 语句“翻译”成 Python?
c++ - (有效)QFileInfo 在 std::sort 中调用 QFileInfo::filename() 时会导致 segv
我需要根据文件名对文件列表进行排序。这些文件是从QDirIterator收集的。
我正在使用此处提供的解决方案。TL;DR - 将std::sort与QCollator一起使用。
由于QCollator::compare(QString&, QString&)使用字符串,我需要获取文件路径或文件名(或要排序的每个文件的一些唯一字符串表示形式 - 我需要根据文件名进行排序)
问题:
排序时,我得到QFileInfo::filename()
每个文件的,并尝试根据这个值进行排序。但是,我达到了导致 segv 的地步(请参见下面的代码)。调试时,为了找出问题的原因,(在我的具体情况下)a
报告为无法访问(参见第二个屏幕截图)。
MVCE 代码:
关于文件路径,我可以说的是它们有些可能会延伸到(并且可能超过 180 个字符的长度,但这小于Windows 限制的最大文件路径长度。
堆栈跟踪
1 QFileInfo::fileName qfileinfo.cpp 758 0x65a1a5a 2 ExplorerDialog::<lambda()>::<lambda(const QFileInfo&, const QFileInfo&)>::operator()(const QFileInfo &, const QFileInfo &) 常量 ExplorerView.cpp 309 0x44f30c
3 __gnu_cxx::__ops::_Iter_comp_iterExplorerDialog::refreshAggregatedFiles()::<lambda()::<lambda(const QFileInfo&, const QFileInfo&)>>::operator()<QList::iterator, QList::iterator>(QList ::iterator, QList::iterator) 预定义_ops.h 143 0x462e42
4 std::__unguarded_partition<QList::iterator, __gnu_cxx::__ops::_Iter_comp_iterExplorerDialog::refreshAggregatedFiles()::<lambda()::<lambda(const QFileInfo& , const QFileInfo&)>>>(QList::iterator, QList::iterator, QList::iterator, __gnu_cxx::__ops::_Iter_comp_iterExplorerDialog::refreshAggregatedFiles()::<lambda()::<lambda(const QFileInfo&, const QFileInfo&)>>) stl_algo.h 1902 0x462d2c
5 std::__unguarded_partition_pivot<QList::iterator, __gnu_cxx::__ops::_Iter_comp_iterExplorerDialog::refreshAggregatedFiles()::<lambda()::<lambda(const QFileInfo&, const QFileInfo&)>>>(QList::iterator, QList ::iterator, __gnu_cxx::__ops::_Iter_comp_iterExplorerDialog::refreshAggregatedFiles()::<lambda()::<lambda(const QFileInfo&, const QFileInfo&)>>) stl_algo.h 1923 0x46198e
6 std::__introsort_loop<QList::迭代器,整数,__gnu_cxx::__ops::_Iter_comp_iterExplorerDialog::refreshAggregatedFiles()::<lambda()::<lambda(const QFileInfo&, const QFileInfo&)>>>(QList::iterator, QList::iterator, int, __gnu_cxx ::__ops::_Iter_comp_iterExplorerDialog::refreshAggregatedFiles()::<lambda()::<lambda(const QFileInfo&,常量 QFileInfo&)>>) stl_algo.h 1952 0x45fed6
7 std::__sort<QList::iterator, __gnu_cxx::__ops::_Iter_comp_iterExplorerDialog::refreshAggregatedFiles()::<lambda()::<lambda(const QFileInfo&, const QFileInfo&)>>>(QList::iterator, QList ::iterator, __gnu_cxx::__ops::_Iter_comp_iterExplorerDialog::refreshAggregatedFiles()::<lambda()::<lambda(const QFileInfo&, const QFileInfo&)>>) stl_algo.h 1968 0x45eadd
8 std::sort<QList::迭代器,ExplorerDialog::refreshAggregatedFiles()::<lambda()>::<lambda(const QFileInfo&, const QFileInfo&)>>(QList::iterator, QList::iterator, ExplorerDialog::<lambda()>::< lambda(const QFileInfo&, const QFileInfo&)>) stl_algo.h 4868 0x45d9be
9 ExplorerDialog::<lambda()>::operator()(void) const ExplorerView.cpp 308 0x44f673
10 std::_Function_handler<void(), ExplorerDialog::refreshAggregatedFiles()::<lambda()>>::_M_invoke(const std::_Any_data &) std_function.h 316 0x45ec7b
11 std::function<void ()>::operator()() const std_function.h 706 0x525442
qt - 如何通过 QFile 打开服务器上的文件?
假设文件路径是:/root/info.txt
原来文件打不开如何通过QFile打开服务器上的文件