在 Qt5/QML 中动态定位嵌套目录和文件
Locate Nested Directories And Files Dynamically In Qt5/QML
我有一个使用 Qt 5.12.6 的 C++ Qt 后端的 QML 应用程序。
我在下面的路径中有一个 txt 文件:
"C:/用户//Documents/ParentDir/ChildDir/FinalTarget.txt"
出于几个设计目的,我需要在标准 DocumentsLocation 下找到这些文件。
我试图在我的 Qml 应用程序中以非硬编码方式定位 FinalTarget.txt(我不想硬编码文件的绝对路径)。我已将定位过程的结果记录如下:
console.log("RESULT1= " + StandardPaths.displayName(1));
console.log("RESULT2= " + StandardPaths.locate(1, "ParentDir", 1));
我目前在应用程序输出中收到以下结果作为日志:
qml: RESULT1= Documents
qml: RESULT2= file:///C:/Users/<MY_USER_NAME>/Documents/ParentDir
我怎样才能到达 ChildDir 并最终到达 FinalTarget.txt 因为我的目标是到达我的应用程序中的 FinalTarget.txt 并执行文件 IO 进程,例如读取和写入。
如果有人能告诉我正确的方法来帮助我,那就太好了。
对我来说,下面的代码
Component.onCompleted: {
console.log("RESULT1= " + StandardPaths.displayName(StandardPaths.DocumentsLocation));
console.log("RESULT2= " + StandardPaths.locate(StandardPaths.DocumentsLocation, "ParentDir/ChildDir/FinalTarget.txt", StandardPaths.LocateFile));
}
打印
qml: RESULT1= Documents
qml: RESULT2= file:///home/mitch/Documents/ParentDir/ChildDir/FinalTarget.txt
如果文件不存在则失败。所以看来 fileName
参数可以是相对路径。
尽管我很好奇你为什么要从 QML 中执行此操作,因为它没有 API 来执行文件 IO,所以无论如何你都必须在 C++ 中执行此操作。
我有一个使用 Qt 5.12.6 的 C++ Qt 后端的 QML 应用程序。
我在下面的路径中有一个 txt 文件: "C:/用户//Documents/ParentDir/ChildDir/FinalTarget.txt"
出于几个设计目的,我需要在标准 DocumentsLocation 下找到这些文件。
我试图在我的 Qml 应用程序中以非硬编码方式定位 FinalTarget.txt(我不想硬编码文件的绝对路径)。我已将定位过程的结果记录如下:
console.log("RESULT1= " + StandardPaths.displayName(1));
console.log("RESULT2= " + StandardPaths.locate(1, "ParentDir", 1));
我目前在应用程序输出中收到以下结果作为日志:
qml: RESULT1= Documents
qml: RESULT2= file:///C:/Users/<MY_USER_NAME>/Documents/ParentDir
我怎样才能到达 ChildDir 并最终到达 FinalTarget.txt 因为我的目标是到达我的应用程序中的 FinalTarget.txt 并执行文件 IO 进程,例如读取和写入。
如果有人能告诉我正确的方法来帮助我,那就太好了。
对我来说,下面的代码
Component.onCompleted: {
console.log("RESULT1= " + StandardPaths.displayName(StandardPaths.DocumentsLocation));
console.log("RESULT2= " + StandardPaths.locate(StandardPaths.DocumentsLocation, "ParentDir/ChildDir/FinalTarget.txt", StandardPaths.LocateFile));
}
打印
qml: RESULT1= Documents
qml: RESULT2= file:///home/mitch/Documents/ParentDir/ChildDir/FinalTarget.txt
如果文件不存在则失败。所以看来 fileName
参数可以是相对路径。
尽管我很好奇你为什么要从 QML 中执行此操作,因为它没有 API 来执行文件 IO,所以无论如何你都必须在 C++ 中执行此操作。