0

我有三星 Galaxy S6。我目前正在开发一个测试应用程序,我想快速访问包含我的文件的文件夹。

使用提供的“我的文件”应用程序,它指定所有这些文件夹都在“内部存储”文件夹中。

我知道内部存储是私有的,但是我想在插入手机时windows访问的默认文件夹中创建一个文件夹。例如,以下代码没有在正确的位置创建目录。

File storage = new File("/testappplication");
if(!storage.exists()) {
   storage.mkdir();
   System.out.println("Folder Created");
}

我只想知道创建文件夹的路径。许多其他应用程序在这里都有存储,所以我知道它是可能的。

4

3 回答 3

0

过了一会儿,我找到了这个问题的答案。

public void createDirectory() {
    File file = new File(Environment.getExternalStorageDirectory(), "/test");
    if (!file.exists()) {
        file.mkdirs();
        Log.w("DEBUG", "Created default directory.");

    }
}

这就是你如何明智地创建它的代码。它没有创建的原因是由于三星奇怪的权限。

确保您在设置 -> 应用程序 -> 应用程序名称 -> 权限中启用了存储权限。我需要打开它才能创建文件夹。

于 2017-08-20T03:07:38.437 回答
0

首先只是为了试用使运行时权限,然后尝试以下代码

 private void createInternalFile() {
    File mediaStorageDir = new File(Environment.getExternalStorageDirectory()+"/"+getApplicationContext()
            .getPackageName()+"/File/profile");
    if (!mediaStorageDir.exists()) {
        mediaStorageDir.mkdirs();
    } }

然后检查您的内部存储,您将在其中找到一个名称为您的包名称的文件夹

于 2017-07-23T08:52:14.377 回答
0

您无法在设备的内部存储中创建目录。除非您对该应用程序具有 root 访问权限。

因此,以下代码将不起作用:

File storage = new File("/testappplication");

testappplication因为它告诉应用程序在文件夹中创建一个。

您只能在以下路径中的应用程序私有文件夹内创建目录:

String path = getFilesDir().getAbsolutePath();

并使用路径制作文件夹。

或者你可以使用这样的东西:

File folder = new File(context.getFilesDir(), "testappplication");
if (!folder.exists()) {
    folder.mkdirs();
} else {
  // folder is exist.
}

在保存文件中阅读更多信息

于 2017-07-23T07:38:49.357 回答