android - 如何查找外部存储目录

标签 android file-io

static final String FILE_LOG = "log.txt";

private void SaveLogToExternalStorage()
{
    String s = tv_log.getText().toString();
    File file;
    FileOutputStream fos = null;

    try
    {
        file = new File(getExternalFilesDir(null), FILE_LOG);
        fos = new FileOutputStream(file);
    }
    catch(FileNotFoundException e)
    {
        Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
        return;
    }

    try
    {
        fos.write(s.getBytes());
        fos.close();
    }
    catch(IOException e)
    {
        Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
        return;
    }

    String savedFile = Environment.getExternalStorageDirectory() + "/" + FILE_LOG;
    Toast.makeText(this, "Log is saved to " + savedFile, Toast.LENGTH_SHORT).show();
}

这个函数打印Log is saved to mnt/sdcard/log.txt 实际上文件保存到mnt/sdcard/Android/data/package.name/files/log.txt 如何以编程方式找到此目录以显示正确的消息?

最佳答案

使用 file.getAbsolutePath() 解决

关于android - 如何查找外部存储目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12914225/

相关文章:

c - C中重定向后获取文件内容

php - fatal error : Call to a member function prepare() on a non-object

c# - 显示该位置已存在文件的对话框

java - 如何在网络服务中发送电话号码并在android中接收请求

javascript - 获取 net::ERR_UNKNOWN_URL_SCHEME 错误

java - 改进标题栏的用户界面

c - 使用 fread 从 .txt 文件中读取 unsigned char 给出不同的值

android - 需要在 Android 10.0 上为蓝牙低功耗扫描启用位置

java - 为什么 getRuntime().exec ("/system/bin/am") 总是返回 "Operation not permitted"?

python - 除了这些方法之外,如何获取路径的子文件夹名称?