标签: qdir

如何用QDir连接绝对路径和相对路径?

我有一个相对路径和绝对路径,看起来像这样:

Absolute: /tmp/somedir
Relative: anotherdir/file.txt

我想将两个(/tmp/somedir/anotherdir/file.txt)与QDir连接起来,但我不太清楚这样做的正确方法是什么.

根据以下文件QDir::absoluteFilePath:

"返回目录中文件的绝对路径名."

如果我只有一个文件名,这将是理想的,但我也有一个相对路径.我查看了页面上的其他一些功能,但它们似乎都不是我想要的.

我应该使用什么功能?

filenames qt relative-path absolute-path qdir

19
推荐指数
1
解决办法
1万
查看次数

从Qt中的文件获取相对路径

我试图从我想写的文件中获取相对路径.这里有一个情况:

我保存了一个conf文件D:\confs\conf.txt.我在我的程序中有一些文件从中读取D:\images\image.bmp.在我conf.txt想要的../images/image.bmp.

我看到一些有用的课程QDir,QFileInfo但我不知道它最好用什么.我试过了:

QDir dir("D:/confs");
dir.filePath(D:/images/image.bmp) // Just return the absolute path of image.bmp
Run Code Online (Sandbox Code Playgroud)

我阅读了文档,它说filePath只能处理目录集中的文件(这里D:\confs),但我想知道是否有办法指示从不同的目录搜索并获得他的相对路径.

c++ qt qdir qtcore qfileinfo

19
推荐指数
1
解决办法
2万
查看次数

QDir.setNameFilter如何只显示具有特定扩展名的文件?

setNameFilters没有按照我的预期工作,所以如果有人能解释我是否错误地使用它,或者这可能是Qt中的错误:

这是我的代码示例:

QDir export_folder("C:\path");
QStringList fileList = export_folder.setNameFilters(QStringList()<<"*.exe");
Run Code Online (Sandbox Code Playgroud)

处理完后,fileList包含字符串"test.exe1"

我希望fileList只包含扩展名为.exe NOT .exe*的文件.

如果我希望文件扩展名长于.exe,我希望将其"*.exe*"作为我的过滤器.

有人可以帮助澄清,还是我事后必须手动处理我的fileList?

c++ qt filter qdir

14
推荐指数
1
解决办法
2万
查看次数

QFile ::删除不删除文件?

尝试删除我刚刚使用Qt下载的文件时遇到一个奇怪的问题.

我的代码:

QString location = "/path/to/app/Application.app";
QFile *rmFile = new QFile(location);
rmFile->remove();
Run Code Online (Sandbox Code Playgroud)

文件未被删除.

什么想法可能是错的?

c++ qt qfile qdir qtcore

6
推荐指数
1
解决办法
3111
查看次数

为什么没有静态QDir :: makepath()?

我知道,要从给定的绝对路径在Qt中创建一个新路径,您可以使用QDir::makepath()as dir.makepath(path),就像在这个问题中所建议的那样.我使用它没有任何问题,它工作正常.我的问题是针对为什么开发人员不会提供静态函数来调用类似的方式QDir::makepath("/Users/me/somepath/");.QDir我不需要创建一个新实例.

我只能想到两个可能的原因:

1.开发人员"懒惰"或没有时间,所以他们没有添加一个,因为它不是绝对必要的.

2.调用QDir它的实例也mkpath(path)将被设置path,因此它可以方便进一步使用 - 但我似乎无法找到任何提示,这是文档中的实际行为.

我知道我重复自己,但同样,我也没有需要帮助的中如何做到这一点,但是我作为很感兴趣,为什么一个人必须这样做的.谢谢你可能错过了任何理由.

qt reasoning qdir

5
推荐指数
1
解决办法
1066
查看次数

QDir::tempPath() 与 QStandardPaths::writableLocation()

我需要获取临时目录的路径。以下方法之间有什么区别吗(除了第一个在 Qt 4 中可用)?哪个更好用?

qt qt5 qdir qstandardpaths

4
推荐指数
1
解决办法
1541
查看次数

复制目录和子目录

您好,我尝试复制目录及其所有内容。我认为一个好的开始是列出所有子目录,这样我就可以了解并将子结构复制到我的目标文件夹。

但我需要获取从 QDir 开始的路径,而不是从机器根目录开始的路径,我该怎么做才能将sweetassurfwear/folder/folder替换为/usr/local/websites/sweetassurfwear/folder/folder

到目前为止,这是我的代码

QDir targetDir1("/home/brett/sweetback");
targetDir1.mkdir("sweetassurfwear");

QDir targetDir("/usr/local/websites/sweetassurfwear");
targetDir.setFilter(QDir::NoDotAndDotDot| QDir::Dirs | QDir::Files);
QDirIterator it(targetDir, QDirIterator::Subdirectories);
while (it.hasNext()) {
    QFileInfo Info(it.next().relativePath());
    QString testName = QString(Info.fileName());
    QString testPath = QString(Info.absoluteFilePath());
    if(Info.isDir()){
    //  QString cpd = "/home/brett/sweetback/sweetassurfwear/";
    //  targetDir.mkdir(cpd+testName);
        QString dirname = Info.filePath();
        ui.textEdit->append(QString("Copy Files " + dirname));
    }

}
Run Code Online (Sandbox Code Playgroud)

c++ qt qt4 qdir qtcore

3
推荐指数
1
解决办法
2118
查看次数

[Qt] [Linux]列出驱动器或分区

如何使用Qt列出驱动器或已挂载的分区?我尝试使用:

foreach( QFileInfo drive, QDir::drives() )
       {
         qDebug() << "Drive: " << drive.absolutePath();
       }
Run Code Online (Sandbox Code Playgroud)

但它只显示根驱动器。我还注意到QDir :: drives()的长度为1,但QDir :: Drives的长度为4。

c++ linux qt qt5 qdir

2
推荐指数
2
解决办法
2969
查看次数

QT - 将文件复制到 AppData

我的程序提示用户选择要处理的文件。我的程序处理它并尝试将文件保存到 AppData。

这就是我的做法:

QSettings settings(QSettings::IniFormat, QSettings::UserScope, "FlameTool", "FlameTool");
addin_path = QFileInfo(settings.fileName()).absolutePath() + "/addins/" + id + ".limod" ;
qDebug(addin_path.toLocal8Bit());

if(QFile::copy(QDir::toNativeSeparators(file_passed),QDir::toNativeSeparators(addin_path)))
    qDebug("copied");
else
    qDebug("not copied");
Run Code Online (Sandbox Code Playgroud)

每次执行这部分代码时,都会输出“未复制”。如何复制文件?

c++ qt qfile qdir

2
推荐指数
1
解决办法
5770
查看次数

未分类的Qt容器

我有一个QVector,它应该存储文件路径,比如

"./zThumbnail/1004.jpeg"
"./zThumbnail/1005.jpeg"
"./zThumbnail/1006.jpeg"
"./zThumbnail/1007.jpeg"
"./zThumbnail/1008.jpeg"
"./zThumbnail/1009.jpeg"
"./zThumbnail/101.jpeg"
"./zThumbnail/1010.jpeg"
"./zThumbnail/1011.jpeg"
"./zThumbnail/1012.jpeg"
"./zThumbnail/1013.jpeg"

QFileInfoList filelistinfo = dir.entryInfoList();
foreach (const QFileInfo &fileinfo, filelistinfo) {
imagePath.push_back(fileinfo.absoluteFilePath());
qDebug() << fileinfo.absoluteFilePath();
}


./abc/1.jpg
./abc/2.jpg
./abc/3.jpg
.
.
.
./abc/1209.jpg
Run Code Online (Sandbox Code Playgroud)

但不是按照上面的顺序存储它,而是存储像

./abc/1.jpg
./abc/10.jpg
./abc/100.jpg
./abc/1000.jpg
./abc/1001.jpg
.
.
Run Code Online (Sandbox Code Playgroud)

如何以数字顺序存储图像文件路径?

qstring qt qdir qvector qfileinfo

2
推荐指数
1
解决办法
80
查看次数

QT中如何识别一个项目是文件还是文件夹

我想从路径指定该项目是文件还是文件夹。我如何实现这样的函数,它采用路径(QString基于输入)并告诉它是文件还是文件夹?

c++ qt qdir qfileinfo

1
推荐指数
1
解决办法
1733
查看次数