本文整理汇总了C++中QFileInfo::isHidden方法的典型用法代码示例。如果您正苦于以下问题:C++ QFileInfo::isHidden方法的具体用法?C++ QFileInfo::isHidden怎么用?C++ QFileInfo::isHidden使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QFileInfo
的用法示例。
在下文中一共展示了QFileInfo::isHidden方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ListFilesInDirectoryTest
QMultiMap<QString,FileAttributes> ListFilesInDirectoryTest(QDir dir, bool Hash)
{
extern Q_CORE_EXPORT int qt_ntfs_permission_lookup;
qt_ntfs_permission_lookup++; // turn checking on
QMultiMap<QString, FileAttributes> fileAttHashTable; //making hash table to store file attributes
dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks);
dir.setSorting(QDir::Name);
QFileInfoList list = dir.entryInfoList();
for (int i = 0; i < list.size(); ++i)
{
QFileInfo fileInfo = list.at(i);
if (fileInfo.isFile())
{
FileAttributes tempFileAttributes;
QDateTime date = fileInfo.lastModified();
QString lastModified = date.toString();
tempFileAttributes.absoluteFilePath = fileInfo.absoluteFilePath();
tempFileAttributes.fileName = fileInfo.fileName();
tempFileAttributes.filePath= fileInfo.path();
if (Hash) tempFileAttributes.md5Hash = GetFileMd5hash(fileInfo.absoluteFilePath());
tempFileAttributes.lastModified = fileInfo.lastModified();
tempFileAttributes.lastRead = fileInfo.lastRead();
tempFileAttributes.created = fileInfo.created();
tempFileAttributes.isHidden = fileInfo.isHidden();
tempFileAttributes.size = fileInfo.size();
tempFileAttributes.owner = fileInfo.owner();
fileAttHashTable.insert(fileInfo.absoluteFilePath(),tempFileAttributes);
}
}
return fileAttHashTable;
}
示例2: checkAndPushDirectory
/*!
\internal
*/
void QDirIteratorPrivate::checkAndPushDirectory(const QFileInfo &fileInfo)
{
// If we're doing flat iteration, we're done.
if (!(iteratorFlags & QDirIterator::Subdirectories))
return;
// Never follow non-directory entries
if (!fileInfo.isDir())
return;
// Follow symlinks only when asked
if (!(iteratorFlags & QDirIterator::FollowSymlinks) && fileInfo.isSymLink())
return;
// Never follow . and ..
QString fileName = fileInfo.fileName();
if (QLatin1String(".") == fileName || QLatin1String("..") == fileName)
return;
// No hidden directories unless requested
if (!(filters & QDir::AllDirs) && !(filters & QDir::Hidden) && fileInfo.isHidden())
return;
// Stop link loops
if (!visitedLinks.isEmpty() &&
visitedLinks.contains(fileInfo.canonicalFilePath()))
return;
pushDirectory(fileInfo);
}
示例3: toFileInfo
FileInfo toFileInfo(const QFileInfo &info)
{
FileInfo fi;
fi.m_valid = true;
fi.m_exists = info.exists();
fi.m_permissions = info.permissions();
fi.m_isSymlink = info.isSymLink();
fi.m_type = FileInfo::System;
fi.m_hidden = info.isHidden();
fi.m_size = -1;
fi.m_lastModified = info.lastModified();
if (info.isDir())
fi.m_type = FileInfo::Dir;
else if (info.isFile())
fi.m_type = FileInfo::File;
else if (!info.exists() && info.isSymLink())
fi.m_type = FileInfo::System;
if (fi.type() == FileInfo::Dir)
fi.m_size = 0;
else if (fi.type() == FileInfo::File)
fi.m_size = info.size();
if (!info.exists() && !info.isSymLink())
fi.m_size = -1;
return fi;
}
示例4: next
QString FilteredDirIterator::next()
{
if (m_firstItem) {
m_firstItem = false;
m_filePath = m_currentIter->path();
return m_filePath;
}
m_filePath.clear();
if (!m_currentIter) {
return QString();
}
while (!m_currentIter->hasNext()) {
delete m_currentIter;
m_currentIter = nullptr;
if (!m_paths.isEmpty()) {
const QString path = m_paths.pop();
m_currentIter = new QDirIterator(path, m_filters);
} else {
return QString();
}
}
m_filePath = m_currentIter->next();
const QFileInfo info = m_currentIter->fileInfo();
if (info.isDir()) {
if (shouldIndexFolder(m_filePath)) {
m_paths.push(m_filePath);
return m_filePath;
} else {
return next();
}
}
else if (info.isFile()) {
bool shouldIndexHidden = false;
if (m_config)
shouldIndexHidden = m_config->indexHiddenFilesAndFolders();
bool shouldIndexFile = (!info.isHidden() || shouldIndexHidden)
&& (!m_config || m_config->shouldFileBeIndexed(info.fileName()));
if (shouldIndexFile) {
return m_filePath;
} else {
return next();
}
}
else {
return next();
}
}
示例5: deleteDirRecursive
/*! Recursively delete a directory and its items.
*/
void QwsClientSocket::deleteDirRecursive(QString pathToDir)
{
QDirIterator it(pathToDir,
QDir::NoDotAndDotDot | QDir::AllEntries,
QDirIterator::Subdirectories);
while (it.hasNext()) {
QString itemPath = it.next();
QFileInfo itemInfo = it.fileInfo();
if (itemInfo.isHidden()) { continue; }
if (itemInfo.isDir()) {
qDebug() << "Deleting recurse dir:" << itemInfo.absoluteFilePath();
deleteDirRecursive(itemInfo.absoluteFilePath());
} else if (itemInfo.isFile()) {
qDebug() << "Deleting file:" << itemInfo.absoluteFilePath();
QFile(itemInfo.absoluteFilePath()).remove();
}
}
QDir().rmdir(pathToDir);
}
示例6: myRemovePath
bool myRemovePath(QString dirPath, bool deleteHidden, bool deleteSelf)
{
qDebug()<<"removePath的进程"<<QThread::currentThread ();
QDir entry (dirPath);
if(!entry.exists()||!entry.isReadable())
return false;
entry.setFilter(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot | QDir::Hidden);
QFileInfoList dirList = entry.entryInfoList();
bool bHaveHiddenFile = false;
if(!dirList.isEmpty()) {
for( int i = 0; i < dirList.size() ; ++i) {
QFileInfo info = dirList.at(i);
if(info.isHidden() && !deleteHidden) {
bHaveHiddenFile = true;
continue;
}
QString path = info.absoluteFilePath();
if(info.isDir()) {
if(!myRemovePath(path, deleteHidden, true))
return false;
}else if(info.isFile()) {
if(!QFile::remove(path))
return false;
}else
return false;
}
}
if(deleteSelf && !bHaveHiddenFile) {
if(!entry.rmdir(dirPath)) {
return false;
}
}
return true;
}
示例7: matchesFilters
bool QDirIteratorPrivate::matchesFilters(const QString &fileName, const QFileInfo &fi) const
{
Q_ASSERT(!fileName.isEmpty());
// filter . and ..?
const int fileNameSize = fileName.size();
const bool dotOrDotDot = fileName[0] == QLatin1Char('.')
&& ((fileNameSize == 1)
||(fileNameSize == 2 && fileName[1] == QLatin1Char('.')));
if ((filters & QDir::NoDot) && dotOrDotDot && fileNameSize == 1)
return false;
if ((filters & QDir::NoDotDot) && dotOrDotDot && fileNameSize == 2)
return false;
// name filter
#ifndef QT_NO_REGEXP
// Pass all entries through name filters, except dirs if the AllDirs
if (!nameFilters.isEmpty() && !((filters & QDir::AllDirs) && fi.isDir())) {
bool matched = false;
for (QVector<QRegExp>::const_iterator iter = nameRegExps.constBegin(),
end = nameRegExps.constEnd();
iter != end; ++iter) {
QRegExp copy = *iter;
if (copy.exactMatch(fileName)) {
matched = true;
break;
}
}
if (!matched)
return false;
}
#endif
// skip symlinks
const bool skipSymlinks = (filters & QDir::NoSymLinks);
const bool includeSystem = (filters & QDir::System);
if(skipSymlinks && fi.isSymLink()) {
// The only reason to save this file is if it is a broken link and we are requesting system files.
if(!includeSystem || fi.exists())
return false;
}
// filter hidden
const bool includeHidden = (filters & QDir::Hidden);
if (!includeHidden && !dotOrDotDot && fi.isHidden())
return false;
// filter system files
if (!includeSystem && (!(fi.isFile() || fi.isDir() || fi.isSymLink())
|| (!fi.exists() && fi.isSymLink())))
return false;
// skip directories
const bool skipDirs = !(filters & (QDir::Dirs | QDir::AllDirs));
if (skipDirs && fi.isDir())
return false;
// skip files
const bool skipFiles = !(filters & QDir::Files);
if (skipFiles && fi.isFile())
// Basically we need a reason not to exclude this file otherwise we just eliminate it.
return false;
// filter permissions
const bool filterPermissions = ((filters & QDir::PermissionMask)
&& (filters & QDir::PermissionMask) != QDir::PermissionMask);
const bool doWritable = !filterPermissions || (filters & QDir::Writable);
const bool doExecutable = !filterPermissions || (filters & QDir::Executable);
const bool doReadable = !filterPermissions || (filters & QDir::Readable);
if (filterPermissions
&& ((doReadable && !fi.isReadable())
|| (doWritable && !fi.isWritable())
|| (doExecutable && !fi.isExecutable()))) {
return false;
}
return true;
}
示例8: matchesFilters
/*!
\internal
This convenience function implements the iterator's filtering logics and
applies then to the current directory entry.
It returns true if the current entry matches the filters (i.e., the
current entry will be returned as part of the directory iteration);
otherwise, false is returned.
*/
bool QDirIteratorPrivate::matchesFilters(const QAbstractFileEngineIterator *it) const
{
const bool filterPermissions = ((filters & QDir::PermissionMask)
&& (filters & QDir::PermissionMask) != QDir::PermissionMask);
const bool skipDirs = !(filters & (QDir::Dirs | QDir::AllDirs));
const bool skipFiles = !(filters & QDir::Files);
const bool skipSymlinks = (filters & QDir::NoSymLinks);
const bool doReadable = !filterPermissions || (filters & QDir::Readable);
const bool doWritable = !filterPermissions || (filters & QDir::Writable);
const bool doExecutable = !filterPermissions || (filters & QDir::Executable);
const bool includeHidden = (filters & QDir::Hidden);
const bool includeSystem = (filters & QDir::System);
#ifndef QT_NO_REGEXP
// Prepare name filters
QList<QRegExp> regexps;
bool hasNameFilters = !nameFilters.isEmpty() && !(nameFilters.contains(QLatin1String("*")));
if (hasNameFilters) {
for (int i = 0; i < nameFilters.size(); ++i) {
regexps << QRegExp(nameFilters.at(i),
(filters & QDir::CaseSensitive) ? Qt::CaseSensitive : Qt::CaseInsensitive,
QRegExp::Wildcard);
}
}
#endif
QString fileName = it->currentFileName();
if (fileName.isEmpty()) {
// invalid entry
return false;
}
QFileInfo fi = it->currentFileInfo();
QString filePath = it->currentFilePath();
#ifndef QT_NO_REGEXP
// Pass all entries through name filters, except dirs if the AllDirs
// filter is passed.
if (hasNameFilters && !((filters & QDir::AllDirs) && fi.isDir())) {
bool matched = false;
for (int i = 0; i < regexps.size(); ++i) {
if (regexps.at(i).exactMatch(fileName)) {
matched = true;
break;
}
}
if (!matched)
return false;
}
#endif
bool dotOrDotDot = (fileName == QLatin1String(".") || fileName == QLatin1String(".."));
if ((filters & QDir::NoDotAndDotDot) && dotOrDotDot)
return false;
bool isHidden = !dotOrDotDot && fi.isHidden();
if (!includeHidden && isHidden)
return false;
bool isSystem = (!fi.isFile() && !fi.isDir() && !fi.isSymLink())
|| (!fi.exists() && fi.isSymLink());
if (!includeSystem && isSystem)
return false;
bool alwaysShow = (filters & QDir::TypeMask) == 0
&& ((isHidden && includeHidden)
|| (includeSystem && isSystem));
// Skip files and directories
if ((filters & QDir::AllDirs) == 0 && skipDirs && fi.isDir()) {
if (!alwaysShow)
return false;
}
if ((skipFiles && (fi.isFile() || !fi.exists()))
|| (skipSymlinks && fi.isSymLink())) {
if (!alwaysShow)
return false;
}
if (filterPermissions
&& ((doReadable && !fi.isReadable())
|| (doWritable && !fi.isWritable())
|| (doExecutable && !fi.isExecutable()))) {
return false;
}
if (!includeSystem && !dotOrDotDot && ((fi.exists() && !fi.isFile() && !fi.isDir() && !fi.isSymLink())
|| (!fi.exists() && fi.isSymLink()))) {
return false;
//.........这里部分代码省略.........