【问题标题】:How to access the file which I saved in internal storage如何访问我保存在内部存储中的文件
【发布时间】:2017-07-27 02:02:03
【问题描述】:

我想编写一个程序,将带有一些内容的文件保存在移动设备中。问题是我无法在移动设备的文件管理器中看到该文件。如何查看它以及在哪个文件夹中?

代码如下:

import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import java.io.FileOutputStream;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String fileName = "MyFile";
        String content = "hello world";

        FileOutputStream outputStream = null;
        try {
            outputStream = openFileOutput(fileName, Context.MODE_APPEND);
            outputStream.write(content.getBytes());
            outputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

编辑 1:更新代码

public class MainActivity extends AppCompatActivity {



    String content = "hello world";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
   File f= getExternalFilesDir("arnav");
        Toast.makeText(this,""+f,Toast.LENGTH_SHORT).show();
File f1=new File(f,"ank.txt");
        FileOutputStream outputStream = null;
        try {
            outputStream = openFileOutput(f1.getAbsolutePath(), Context.MODE_APPEND);
            outputStream.write(content.getBytes());
            outputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

现在的问题是文件夹(arnav)正在创建但文件(ank.txt)没有创建?如何解决?

【问题讨论】:

    标签: android android-internal-storage


    【解决方案1】:

    要访问通过应用程序存储的文件,您需要转到以下位置:Internal Storage>Android>data>com.package_name.app_name>files,在这里您可以找到由应用程序。

    【讨论】:

    • 问题是在这种情况下没有创建“com.package_name.app_name”。我有没有做错什么。我需要在清单中提供任何权限吗?
    • 它应该被创建。总是会为应用数据创建这样的文件。请仔细检查,您设备的内部存储。
    【解决方案2】:

    “openFileOutput()”方法会将文件保存在以下路径:/data/data/package-name/files/ 您看不到文件,因为“/data/data”目录受到保护,只能看到root模式下的手机。

    【讨论】:

    • 那么如何将文件保存在移动设备中,以便在文件管理器中对我可见
    • 您可以将文件保存在外部存储中。 “Environment.getExternalStorageDirectory()”它返回主要的共享/外部存储目录。然后它在文件管理器中可见。
    • 但它也应该保存在内部存储中,就好像没有 sd 卡那样我的文件不会显示?
    • 是的,它不会被显示,除了你的设备。如果您获得了 root 权限,请使用“RE”文件管理器。
    【解决方案3】:
     MainActivity.this.getFilesDir().getAbsolutePath()
    

    将返回您创建的文件路径 openFileOutput

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-31
      • 1970-01-01
      • 1970-01-01
      • 2022-08-10
      相关资源
      最近更新 更多