Qt5.6文档翻译:QFileInfo类,QFileInfo Class
QFileInfo类提供与系统无关的文件信息。
QFileInfo提供一个文件的以下信息 :名字、在文件系统中的位置(路径) 、它的访问权限、是一个目录还是符号链接等等。还有文件的大小和最后修改/读取时间。 QFileInfo还可以用来获取一个Qt 资源 的信息 。
一个QFileInfo可以指向一个有相对路径或者绝对路径的文件 。绝对文件路径以目录分隔符"/"开始 。相对文件名以一个目录名或者一个文件名开头 ,指定一个相对于当前工作目录的路径。一个绝对路径的示例是这个字符串"/tmp/quartz" 。一个相对路径可能看起来像是这样的"src/fatlib" 。你可以使用函数 isRelative () 来检查一个 QFileInfo 是在使用一个相对路径还是一个绝对路径。你可以调用函数 makeAbsolute () 来将一个使用相对路径的QFileInfo 的路径转换成一个绝对路径。
QFileInfo 所处理的文件是在构造函数中或者是稍后使用 setFile () 设置的 。使用 exists () 来看文件是否存在,使用 size () 来获取它的大小。
文件的类 型 是使用 isFile () 、 isDir () 和 isSymLink () 来获取的。 symLinkTarget () 函数提供咯这个符号链接所指向的文件的名字。
在Unix上 ,符号链接的 size () 与它所指向的文件相同 ,因为Unix 透明地处理符号链接;类似地 ,使用 QFile 来打开一个符号链接与打开链接的目标是等价的 。例如:
#ifdef Q_OS_UNIX
QFileInfo info1("/home/bob/bin/untabify");
info1.isSymLink(); // 返回 真(true)
info1.absoluteFilePath(); // 返回"/home/bob/bin/untabify"
info1.size(); // 返回56201
info1.symLinkTarget(); // 返回"/opt/pretty++/bin/untabify"
QFileInfo info2(info1.symLinkTarget());
info2.isSymLink(); // 返回 假(false)
info2.absoluteFilePath(); // 返回"/opt/pretty++/bin/untabify"
info2.size(); // 返回56201
#endif
这个文件的名字中的元素可使用 path () 和 fileName () 来提取。 fileName () 的各个部分可使用 baseName () 、 suffix () 或者 completeSuffix () 来提取。Qt 类所创建的指向目录的QFileInfo 对象没有末尾的文件分隔符 。如果你想要 在你自己的文件信息对象中使用末尾的分隔符的话,只需要在向构造函数或者 setFile () 传递文件名时 在末尾添加一个就行咯。
这个文件的日期信息是由 created () 、 lastModified () 和 lastRead () 返回的。这个文件的访问权限信息是用 isReadable () 、 isWritable () 和 isExecutable () 获取的。文件的所有者信息是由 owner () 、 ownerId () 、 group () 和 groupId () 来查询的。你可以使用 permission () 函数来在单条语句中检查一个文件的权限和所有者信息 。
QFileInfo 的某些函数会查询文件系统,但是因为性能上 的某些原因,有些函数只是自己对文件名进行操作。例如 :为了返回一个相对文件名的绝对路径, absolutePath () 需要查询文件系统。然而, path () 函数可以直接在文件名上进行计算 ,所以要快一些。
注意: 为了提升性能,QFileInfo对文件的信息进行缓存。因为那些文件可能会被其它用户或者程序修改,甚至可能被这个程序的其它部分修改,所以有一个函数来刷新这个文件的信息: refresh () 。如果你想关掉一个QFileInfo 的缓存功能,以强制让它在你每次请求信息时访问文件系统,那么就调用setCaching(false)。
构造 一个空白的 QFileInfo 对象。
注意 ,空白的 QFileInfo 对象不包含任何文件引用。
参考 setFile () 。
构造 一个新的 QFileInfo 对象,它 会提供指定文件的信息。文件 file 可指定为绝对路径或相对路径。
参考 setFile () 、 isRelative () 、 QDir::setCurrent () 和 QDir::isRelativePath () 。
构造 一个新的 QFileInfo 对象,它会提供指定文件 file 的信息。
如果 file 带有相对路径,那么,对应的 QFileInfo 对象也会带有相对路径。
参考 isRelative () 。
构造 一个新的 QFileInfo 对象,它会提供指定目录 dir 中指定文件 file 的信息。
如果 dir 带有相对路径,那么,对应的 QFileInfo 对象也会带有相对路径。
如果file带有绝对路径,那么,由 dir 指定的目录参数会被忽略。
参考 isRelative () 。
构造 一个新的 QFileInfo 对象,它是指定 fileinfo 的一个复制品。
销毁 这个 QFileInfo 对象,并且释放它的资源。
将该文件的绝对路径返回为一个 QDir 对象。
参考 dir () 、 filePath () 、 fileName () 和 isRelative () 。
返回一个绝对路径,其中包含文件名。
绝对路径 名,由完整路径和文件名组成。 在 Unix 中,这样的路径名一定会以根目录'/'开头。
除非 isRelative () 为真(true),否则,这个函数返回的内容与 filePath ()相同。 与 canonicalFilePath ()不同的是,符 号 链接 和多余的"."和".."元素都不会被去掉。
警告 : 如果 filePath () 是空白的,那么,此函数的行为是未定义的。
参考 filePath () 、 canonicalFilePath () 和 isRelative () 。
将该文件所在的路径返回为绝对路径。这并不会包含文件名。
在Unix中,绝对路径名一定会以根目录'/'开头。
与 canonicalFilePath ()不同的是,符 号 链接 和多余的"."和".."元素都不会被去掉。
警告 : 如果 filePath () 是空白的,那么,此函数的行为是未定义的。
参考 absoluteFilePath () 、 path () 、 canonicalPath () 、 fileName () 和 isRelative () 。
返回该文件的基本文件名,并且不带路径。
基本文件名,表示的是,文件名中从开头直到 第一个 '.' 字符之前的所有字符。
示例:
QFileInfo fi("/tmp/archive.tar.gz");
QString base = fi.baseName(); // base = "archive"
文件的基本文件名,在所有平台上的计算方法都是等同的,并不会受命名惯例的影响(例如,在Unix 中,".bashrc"会具有一个空白的基本文件名,而其后缀名是"bashrc")。
参考 fileName () 、 suffix () 、 completeSuffix () 和 completeBaseName () 。
如果启用 了缓存,则返回真( true );否则返回假( false )。
参考 setCaching () 和 refresh () 。
返回一个规范路径,并且包含文件名。也就是说,返回的是一个绝对路径,并且其中不会包含符号链接、多余的"."和".."元素。
如果该文件不存在,那么,canonicalFilePath()会返回一个空白字符串。
参考 filePath () 、 absoluteFilePath () 和 dir () 。
返回一个规范路径,其中不包含文件名。也就是说,返回的是一个绝对路径,并且其中不会包含符号链接、多余的"."和".."元素。
如果该文件不存在,那么,canonicalPath()会返回一个空白字符串。
参考 path () 和 absolutePath () 。
返回该文件的完整基本文件名,不包含路径。
完整基本文件名,表示的是,文件名中从开头直到 最后一个 '.'字符之前的那些字符。
示例:
QFileInfo fi("/tmp/archive.tar.gz");
QString base = fi.completeBaseName(); // base = "archive.tar"
参考 fileName () 、 suffix () 、 completeSuffix () 和 baseName () 。
返回该文件的完整后缀名。
完整后缀名,表示的是,文件名中第一个'.'之后的全部字符。
示例:
QFileInfo fi("/tmp/archive.tar.gz");
QString ext = fi.completeSuffix(); // ext = "tar.gz"
参考 fileName () 、 suffix () 、 baseName () 和 completeBaseName () 。
返回该文件被创建的日期和时间。
在大部分Unix 系统中,这个函数会返回最后一次发生状态变更的时间。状态变更,会在文件被创建的时候发生,但是,每当用户写入或者设置inode 信息(例如,改变文件的权限)时也会发生。
如果创建时间 和“最后一次状态变更”时间都无法获取,那么,其返回的值与 lastModified ()一致。
参考 lastModified () 和 lastRead () 。
将该对象的亲代目录的路径返回为一个 QDir 对象。
注意 : 所返回的 QDir 一定是对应着该对象的亲代目录,即使该 QFileInfo 本身也代表着一个目录也是如此。
对于 以下每个对象,dir()所返回的 QDir 都是对应着 "~/examples/191697" 。
QFileInfo fileInfo1("~/examples/191697/.");
QFileInfo fileInfo2("~/examples/191697/..");
QFileInfo fileInfo3("~/examples/191697/main.cpp");
对于 以下每个对象,dir()返回的 QDir 都是对应着 "." 。
QFileInfo fileInfo4(".");
QFileInfo fileInfo5("..");
QFileInfo fileInfo6("main.cpp");
参考 absolutePath () 、 filePath () 、 fileName () 、 isRelative () 和 absoluteDir () 。
如果 该文件存在,则返回真( true );否则返回假( false )。
注意 :如果该文件是一个符号链接,并且指向一个不存在的文件,那么,返回假。
如果文件 file 存在 ,则返回真( true );否则,返回假( false )。
注意 :如果file 是一个符号链接,并且指向一个不存在的文件,那么,返回假。
注意 : 从文件系统访问的角度来说,使用这个函数,比使用 QFileInfo(file).exists() 要快。
这个函数是从Qt 5.2 开始引入的。
返回该文件的文件名,不包含路径。
示例:
QFileInfo fi("/tmp/archive.tar.gz");
QString name = fi.fileName(); // name = "archive.tar.gz"
注意 ,如果向这个 QFileInfo 对象传递的路径是以/结尾的,那么,文件名会被认为是空白的。
参考 isRelative () 、 filePath () 、 baseName () 和 suffix () 。
返回文件名,包含路径(路径可能是绝对的也可能是相对的)。
参考 absoluteFilePath () 、 canonicalFilePath () 和 isRelative () 。
返回该文件所属的组。在某些系统中,文件不具有组属性,或者,在出错的情况下,都会返回一个空白字符串。
在Unix 系统中,这个函数可能会狠耗时(毫秒的级别)。
参考 groupId () 、 owner () 和 ownerId () 。
返回此文件所属的组的编号。
在某些系统中,文件并不具有组这个属性,那种情况下,此函数永远返回(uint)-2。
参考 group () 、 owner () 和 ownerId () 。
如果文件 的路径是绝对的,则返回真( true ),否则路径是相对的则返回假(false)。
参考 isRelative () 。
如果 这个对象指向一个目录,或者指向某个目录的一个符号链接,则返回真( true );否则返回假( false )。
如果 该文件可执行,则返回真( true );否则返回假( false )。
参考 isReadable () 、 isWritable () 和 permission () 。
如果 该对象指向一个文件,或者指向某个文件的一个符号链接,则返回真( true )。如果 该对象指向一个不是文件的东西,则返回假( false ),例如指向一个目录。
如果 这是一个“隐藏”文件,则返回真( true ),否则返回假( false )。
注意 :在 Unix 中,这个函数会针对特殊条目 "." 和 ".." 返回真( true ),即便 QDir::entryList 将它们当成可见文件也是如此。
如果 该文件路径可被直接用于原生接口,则返回真( true )。否则 ,如果该文件是由 Qt 中的虚拟文件系统支持的,例如 Qt资源系统 ,则返回假( false )。
注意 :对于原生路径,可能仍然需要进行路径分隔符和字符编码的转换,这取决于平台以及该原生接口的输入要求。
此函数是从Qt 5.0 开始引入的。
参考 QDir::toNativeSeparators () 、 QFile::encodeName () 、 filePath () 、 absoluteFilePath () 和 canonicalFilePath () 。
如果 该用户可读取该文件,则返回真( true );否则返回假( false )。
参考 isWritable () 、 isExecutable () 和 permission () 。
如果 该 文件 的路径名是相对的,则返回真( true ),否则如果路径是绝对的则返回假(false)。 (例如 ,在Unix 中,一个路径如果是以"/"开头的则是绝对路径 ) 。
参考 isAbsolute () 。
如果 该对象指向一个目录或者是指向目录的一个符号链接,并且该目录是根目录,则返回真( true );否则返回 假( false )。
如果 这个对象指向一个符号链接,则返回真( true );否则返回 假( false )。
在 Unix 中,打开一个符号链接,就等价于打开 链接 的目标 。
示例:
QFileInfo info(fileName);
if (info.isSymLink())
fileName = info.symLinkTarget();
注意 : 如果 该符号链接指向一个不存在的文件,那么, exists ()返回假(false)。
参考 isFile () 、 isDir () 和 symLinkTarget () 。
如果 该用户可对该文件进行写入操作,则返回真( true );否则返回假( false )。
参考 isReadable () 、 isExecutable () 和 permission () 。
返回该文件最后一次被修改的日期和时间。
返回该文件最后一次被读取(访问)的日期和时间。
在那些不提供此信息的平台上, 其返回值与 lastModified ()相同。
参考 created () 和 lastModified () 。
如果 该文件的路径还不是绝对路径,则转换成绝对路径。返回 真( true )则表明路径被转换了;返回假( false )则表明路径已经是绝对的了。
See also filePath () and isRelative ().
返回该文件的所有者。在那些不记录文件所有者的系统中,或者,出现错误时,会返回一个空白字符串。
在Unix 中,这个函数可能会狠费时间( 以毫秒为单位 )。
参考 ownerId () 、 group () 和 groupId () 。
返回该文件的所有者的编号。
在那些不记录文件的所有者的系统中,这个函数会返回((uint) -2)。
参考 owner () 、 group () 和 groupId () 。
返回该文件的路径。不包括文件名。
注意 ,如果 这个 QFileInfo 对象被赋予一个以/结尾的路径,则,文件 名就被认为是空白的,于是这个函数就会返回整个路径。
参考 filePath () 、 absolutePath () 、 canonicalPath () 、 dir () 、 fileName () 和 isRelative () 。
检查文件 的权限。其中 的 permissions 参数, 可将多个 QFile::Permissions 类型的标志位以逻辑或(OR)合并到一起而得到,以检查多个权限的组合。
在那些不支持权限的系统中,这个函数一定会返回真( true )。
示例:
QFileInfo fi("/tmp/archive.tar.gz");
if (fi.permission( QFile ::WriteUser | QFile ::ReadGroup))
qWarning ("I can change the file; my group can read the file");
if (fi.permission( QFile ::WriteGroup | QFile ::WriteOther))
qWarning ("The group or others can change the file");
参考 isReadable () 、 isWritable () 和 isExecutable () 。
返回 该文件的权限标志位的组合,即, 它所具有的所有 QFile::Permissions 标志位经过逻辑或(OR)合并之后的结果。
刷新该文件的信息,也就是说,当下次获取某个被缓存的属性时,从文件系统中读取信息。
如果enable 为真(true),则启用针对文件信息的缓存。如果 enable 为假(false),则禁用缓存。
在启用缓存的情况下, QFileInfo 会在第一次需要读取信息的时候从文件系统中读取文件的信息,但是之后 一般就不会从文件系统读取了。
缓存默认是启用的。
将这个 QFileInfo 所关联的文件设置为 file 。
file 可包含一个绝对或相对文件路径。绝对路径,以目录分隔符开头(例如,Unix 中是"/")。相对文件名,以目录名或文件名开头,它所表达的是相对于当前目录的路径。
示例:
QString absolute = "/local/bin";
QString relative = "local/bin";
QFileInfo absFile(absolute);
QFileInfo relFile(relative);
QDir ::setCurrent( QDir ::rootPath());
// 现在absFile 和 relFile指向 同一个文件
QDir ::setCurrent("/tmp");
// 现在absFile指向"/local/bin" ,
// 而 relFile指向"/tmp/local/bin"
参考 isFile () 、 isRelative () 、 QDir::setCurrent () 和 QDir::isRelativePath () 。
这是一个重载函数。
将这个 QFileInfo 所关联的文件设置为 file 。
如果 file 包含 一个相对路径,则,这个 QFileInfo 也会包含一个相对路径。
参考 isRelative () 。
这是一个重载函数。
将这个 QFileInfo 所关联的文件设置为目录 dir 中的 file 。
如果 file 包含 一个相对路径,则,这个 QFileInfo 也会包含一个相对路径。
参考 isRelative () 。
返回该文件的尺寸,以字节为单位。如果该文件不存在或者无法获取,则返回0。
参考 exists () 。
返回该文件的后缀。
后缀名,指的是,文件名中,最后一个'.'之后的全部字符。
示例:
QFileInfo fi("/tmp/archive.tar.gz");
QString ext = fi.suffix(); // ext = "gz"
文件的后缀名,在所有平台上都是以相同的方法计算的,与命名惯例无关(例如,在Unix 中,".bashrc"的基本文件名为空白,后缀名为"bashrc")。
参考 fileName () 、 completeSuffix () 、 baseName () 和 completeBaseName () 。
将这个文件的信息与 other 互换。这个函数运行狠快,并且不会失败。
此函数是从Qt 5.0 开始引入的。
返回符号链接所指向的文件或目录的绝对路径,或者,如果它不是符号链接,则返回一个空字符串。
这个结果,可能并不是一个真正存在的文件;它本质上仅仅是一个字符串。如果 该符号链接指向一个真实存在的文件,则 QFileInfo::exists ()会返回真( true )。
此函数是从Qt 4.2 开始引入的。
参考 exists () 、 isSymLink () 、 isDir () 和 isFile () 。
如果 这个 QFileInfo 对象所引用的文件与 fileinfo 所引用的文件不是同一个文件,则返回真( true );否则返回假( false )。
参考 operator== () 。
对指定的 fileinfo 进行一次复制,并且将它赋值给本 QFileInfo 对象。
将 other 移动赋值(Move-assign)给本 QFileInfo 实例。
此函数是从Qt 5.2 开始引入的。
如果 此 QFileInfo 对象所引用的文件的位置与 fileinfo 所引用的文件的位置相同,则返回真( true );否则返回假( false )。
注意 : 对两个空白的 QFileInfo 对象进行比较,或者对两个不包含文件引用(文件路径 不存在,或者路径为空 )的对象进行比较,其结果是未定义的。
警告: 这个函数并不会判断两个不同的符号链接是否指向同一个文件。
参考 operator!= () 。
十月的天空
未知美人
Your opinionsHxLauncher: Launch Android applications by voice commands