【问题标题】:Android Choosing Specific File LocationAndroid 选择特定文件位置
【发布时间】:2016-08-04 18:52:53
【问题描述】:

我正在尝试从 android 上的特定文件夹中读取特定文件,然后将其读入 SQLite 数据库。当我从资产文件夹中获取数据库时,读取数据库工作正常(但这不适用于最终构建,因为文件会随时更改)。但是,我在实际访问文件时找不到文件的问题。

在设备上,文件的路径显示为“/storage/emulated/0/Wellpro”,文件名为“orfice.txt”。

目前我用于访问该文件的代码是从大约 3 或 4 个不同的来源汇总而来的,因为我还没有找到任何具体的东西。

        String fileName = "/storage/emulated/0/Wellpro/orfice.txt";
        String path = Environment.getExternalStorageDirectory()+fileName;
        InputStream is = new FileInputStream(path);
        BufferedReader buffer = new BufferedReader(new InputStreamReader(is, "UTF-8"));

任何帮助将不胜感激。

谢谢。

【问题讨论】:

    标签: android file file-read file-not-found


    【解决方案1】:

    getAbsolutePath() 为您提供 SD 卡的完整路径。

    试试

    String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
    String fileName = "myFile.txt";
    
    // check if file path exist then read the file 
    File f = new File(baseDir + File.Separator + fileName);
    FileInputStream fiStream = new FileInputStream(f);
    

    【讨论】:

    • 文件不在 SD 卡的路径中。它位于一个文件夹中。另外,我不知道这是否会改变事情,但它不在 SD 卡上。它位于内部存储上,但任何应用程序都可以访问该存储。虽然,据我了解,它无论如何都被视为外部存储。
    • 我没有完全理解你。如果它能帮助你理解,我很高兴。
    • 该文件位于名为“Wellpro”的文件夹中。所以,我需要先进入那个文件夹,我认为不会进入 SD 卡的路径?
    【解决方案2】:

    您的第一个错误是文件名应该是“orfice.txt”,因为 Environment.getExternalStorageDirectory() 为您提供了路径。遵循@Kathi 的解决方案,这很好。

    如果您仍然遇到问题,请确保您添加了访问外部存储所需的适当权限。如果您正在为 API

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    

    如果您正在为 API = 23 开发,您应该在运行时请求权限。查看https://developer.android.com/training/permissions/requesting.html 了解更多信息。

    【讨论】:

    • 好的,所以我会像 getExternalStorageDirectory("/storage/emulated/0/Wellpro/") 一样将“/storage/emulated/0/Wellpro/”放入 getExternalStorageDirectory 中??
    • 不,你应该使用 File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Wellpro/orfice.txt");注意:外部存储是板载闪存的一部分。
    • 最好在没有getAbsolutePath()的情况下使用Environment.getExtrenalStorageDirectory()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-29
    • 1970-01-01
    • 2021-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多