【问题标题】:'fileSystemModule' was not found in '@nativescript/core'在“@nativescript/core”中找不到“fileSystemModule”
【发布时间】:2021-07-21 11:53:45
【问题描述】:

尝试在 Android 中写入本地文件。

尝试从“@nativescript/core”导入 {fileSystemModule};但是在“@nativescript/core”中找不到错误“fileSystemModule”。

也试过 import {fileSystemModule} from "@nativescript/core/file-system" 但它不存在。我使用的是纯 Javascript。

Nativescript 8.0.2

【问题讨论】:

    标签: nativescript


    【解决方案1】:

    在最新版本的 NativeScript 中更新了导入路径。您现在可以直接访问这些内容,而无需通过 fileSystemModule。见以下代码:

    import { knownFolders, File, Folder } from '@nativescript/core';
    

    使用最新的 NativeScript 写入本地文件如下所示:

    writeToFile(): void {
      const folder = knownFolders.documents().getFolder(FOLDER_NAME);
      const file = folder.getFile(FILE_NAME.txt);
      file.writeText(SOME_STRING_TO_WRITE_TO_FILE);
    }
    

    要写入 Android 中可访问的位置,您可以使用以下命令:

    writeToFile(): void {
        const folderPath = path.join(android.os.Environment.getExternalStorageDirectory().getAbsolutePath().toString())
        const folder = Folder.fromPath(folderPath);
        const file = folder.getFile(FILE_NAME.txt);
        file.writeText(SOME_STRING_TO_WRITE_TO_FILE);
    }
    

    【讨论】:

    • 非常感谢您的回复。使用上面的代码,我得到了一条我找不到的模糊路径。 /data/user/0/org.nativescript.datacapture/files/datacapture/data.txt。如何直接写入 Documents 文件夹,然后写入我的子文件夹。
    • 很抱歉我之前的评论我们只能为应用程序使用内部存储,因为我们不能保证外部存储可用。我们正在使用三星 Galaxy Tab A,但正在努力将数据写入可访问的合理位置。
    • 更新了答案,希望对@FrankNicklin有所帮助
    • 您好,感谢您的回复。看起来您的代码正在写入外部存储。我们只能为我们的应用程序使用内部存储。我们不能保证会安装 SD 卡。
    • 您应该可以将getExternalStorageDirectory 替换为getDataDirectory、getRootDirectory 或getDownloadCacheDirectory 以使用其他目录。不确定这些是否适用于您的用例
    猜你喜欢
    • 2021-07-10
    • 1970-01-01
    • 1970-01-01
    • 2020-11-20
    • 1970-01-01
    • 2017-01-02
    • 1970-01-01
    • 2021-04-13
    • 1970-01-01
    相关资源
    最近更新 更多