从QFile获取没有文件名的文件地址

时间:2016-04-24 07:32:24

标签: c++ qt qfile

我有一个Qfile,其中fileName =" d://f1/f2/img.jpg"。我只想要文件的地址(" d:// f1 / f2)。如何在不转换为QfileInfo的情况下获取它?

3 个答案:

答案 0 :(得分:1)

 QString folder=file.fileName().section("/",0,-2);

.section函数将qstring的内容分开并将其标记如下:

 _______________________________
| d: | / | /f1 | /f2 | /img.jpg |
 -------------------------------
| 0  | 1 |  2  |  3  |  4       |
 -------------------------------
| -5 |-4 | -3  | -2  | -1       |
 -------------------------------

所以部分(" /",0,-2)将返回:d:// f1 / f2

答案 1 :(得分:1)

检查此链接:

http://doc.qt.io/qt-4.8/qfileinfo.html#absolutePath

文件路径:

QFileInfo fi("c:/temp/foo"); => fi.absoluteFilePath() => "C:/temp/foo"

也是文件基名:

QFileInfo fi("/tmp/archive.tar.gz");
QString base = fi.baseName();  // base = "archive"

答案 2 :(得分:0)

我认为frank-osterfeld的评论是正确的答案:

QString fpath (QFileInfo("/home/me/filename.txt").absolutePath());
std::cout << fpath.toStdString() << std::endl;

打印:

/home/me