QML:如何获取文件baseName

Posted

技术标签:

【中文标题】QML:如何获取文件baseName【英文标题】:QML: how to get file baseName 【发布时间】:2015-10-04 14:55:18 【问题描述】:

如何从完整的文件 URL 中提取文件 baseName?

FileDialog
    
        id: fileDialog
        title: "Oooopen"
        onAccepted:
        
        console.log(fileUrl)    
        

    

fileUrl 没有baseName 之类的属性 我尝试谷歌搜索,但没有成功

【问题讨论】:

您可以使用 QFileInfo 的功能从 C++ 向 QML 公开自定义类,因为它不是从 QObject 派生的,并且不能直接向 QML 公开。或者只使用正则表达式,例如fileUrl.toString().replace(/\\/g,'/').replace(/.*\//, '') Get the path from a QML url的可能重复 【参考方案1】:

您可以定义自己的basename 函数

function basename(str)

    return (str.slice(str.lastIndexOf("/")+1))



FileDialog

    id: fileDialog
    title: "Oooopen"
    onAccepted:
    
        console.log(basename(fileUrl.toString()))    
    

【讨论】:

在 Qt 5.10 中(也可能是早期版本)这个函数看起来像:return (String(str).slice(String(str).lastIndexOf("/")+1))

以上是关于QML:如何获取文件baseName的主要内容,如果未能解决你的问题,请参考以下文章

详解php 获取文件名basename()函数的用法

linux 文件路径截取 basename,dirname

如何获取在 NodeJS 中执行的脚本的文件名?

如何从另一个 Qml 的 Qml 中的属性中获取值?

PHP basename 函数 linux下中文路径的问题解决方法

使用 QML 从委托文件中获取元数据