Android应用:如何在内部存储中创建目录

时间:2017-07-30 04:07:01

标签: java android file io directory

我似乎无法弄清楚如何通过Android应用程序创建目录/文件到内部存储。我有以下代码:

public class Environment extends SurfaceView implements SurfaceHolder.Callback {
    public static String FILE_PATH;
    //other unimportant variables

    public Environment(Conext context) {
        super(context);
        FILE_PATH = context.getFilesDir() + "/My Dir/";
        File customDir = new File(FILE_PATH);
        if(!customDir.exists())
            System.out.println("created my dir: " + customDir.mkdir());

        File test = new File(FILE_PATH + "testFile.txt");
        try {
            if(!test.exists())
                System.out.println("created test: " + test.createNewFile());
        } catch(Exception e) {
            e.printStackTrace();
        }
        //other unimportant stuff
    }
}

然后我使用ES文件资源管理器来查看它是否创建了该文件,并且我没有在任何地方看到目录/文件,尽管它打印出来" true"用于System.out.println()调用。

我做错了什么?

2 个答案:

答案 0 :(得分:1)

您创建文件的路径位于应用私有位置。通常,您无法从外部访问它。它实际上是在apps数据文件夹中创建的。但是看起来你想写在外部文件夹中。 要在外部存储中写入,您必须在清单文件中请求WRITE_EXTERNAL_STORAGE权限:

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

代码:

    String folder_main = "My Dir";

    File f = new File(Environment.getExternalStorageDirectory(), folder_main);
    if (!f.exists()) {
        f.mkdirs();
    }
    File test = new File(f , "testFile.txt");

在这里,您将了解如何在外部存储中创建文件夹/文件。

Save a File on External Storage

答案 1 :(得分:0)

您可以尝试使用以下内容:

ContextWrapper contextWrapper = new ContextWrapper(getApplicationContext());
File directory = contextWrapper.getDir(getFilesDir().getName(), Context.MODE_PRIVATE);
File file =  new File(directory,”fileName”);
String data = “TEST DATA”;
FileOutputStream fos = new FileOutputStream(“fileName”, true); // save
fos.write(data.getBytes());
fos.close();

这将在Device的内部存储中写入文件(/data/user/0/com.yourapp /)

希望这有帮助!