如何在BlackBerry 10的数据($ HOME)文件夹中添加文件

时间:2012-12-27 13:44:27

标签: blackberry-10

我正在尝试在BlackBerry 10模拟器提供的文件系统的数据文件夹中添加一些可写文件。 提供的链接中的PFB文件系统层次结构:https://developer.blackberry.com/cascades/documentation/device_platform/filesystem/index.html

在bar-descriptor.xml文件中尝试下面的选项但在其中任何一个中都没有成功。  1. $ HOME / jsapp.html  2. $ {HOME} /jsapp.html

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

您的问题并不清楚,但听起来您正试图将这些文件包含在BAR文件中。你不能这样做。使用BAR文件部署的所有资产都由应用程序签名覆盖,并且无法更改(除了在模拟器或具有未签名BAR的开发人员令牌的设备上)。如果需要在安装后修改资产,请使用BAR文件部署初始版本并将其复制到数据目录。其中一个示例程序(如果我没记错的话,引用数据库示例)就是这样做的。

答案 1 :(得分:0)

正如Richard所说,这是直接来自Quotes示例应用程序

    void CustomSqlDataSource::copyFileToDataFolder(const QString fileName)
{
    // Since we need read and write access to the file, it has
    // to be moved to a folder where we have access to it. First,
    // we check if the file already exists (previously copied).
    QString dataFolder = QDir::homePath();
    QString newFileName = dataFolder + "/" + fileName;
    QFile newFile(newFileName);


    if (!newFile.exists()) {
        // If the file is not already in the data folder, we copy it from the
        // assets folder (read only) to the data folder (read and write).
        QString appFolder(QDir::homePath());
        appFolder.chop(4);
        QString originalFileName = appFolder + "app/native/assets/" + fileName;
        QFile originalFile(originalFileName);

        if (originalFile.exists()) {
            // Create sub folders if any creates the SQL folder for a file path like e.g. sql/quotesdb
            QFileInfo fileInfo(newFileName);
            QDir().mkpath (fileInfo.dir().path());

            if(!originalFile.copy(newFileName)) {
                qDebug() << "Failed to copy file to path: " << newFileName;
            }
        } else {
            qDebug() << "Failed to copy file data base file does not exists.";
        }
    }

    mSourceInDataFolder = newFileName;
}