从QFile获取文件名?

时间:2010-09-06 03:20:55

标签: qt qt4

例如:

QFile f("/home/umanga/Desktop/image.jpg");

我如何只得到文件名 - “image.jpg”?

4 个答案:

答案 0 :(得分:89)

使用QFileInfo删除路径(如果有):

QFileInfo fileInfo(f.fileName());
QString filename(fileInfo.fileName());

答案 1 :(得分:13)

一种方法,不一定是最好的方法:从QFile开始,您可以使用QFile::fileName()获取文件规范:

QFile f("/home/umanga/Desktop/image.jpg");
QString str = f.fileName();

然后您可以使用QString::split之类的字符串功能:

QStringList parts = str.split("/");
QString lastBit = parts.at(parts.size()-1);

答案 2 :(得分:8)

另外:分隔具有QFile f

的文件名和文件路径
QString path = f.fileName();
QString file = path.section("/",-1,-1);
QString dir = path.section("/",0,-2);

您不需要创建额外的fileInfo。

答案 3 :(得分:0)

我用这个:

bool utes::pathsplit(QString source,QString *path,QString *filename)
{
QString fn;
int index;
    if (source == "") return(false);
    fn = source.section("/", -1, -1);
    if (fn == "") return(false);
    index = source.indexOf(fn);
    if (index == -1) return(false);
    *path = source.mid(0,index);
    *filename = fn;
    return(true);
}