如何在Android data/data/project文件系统中创建文件目录和文件夹

16

我正在开发一个视频编辑器程序,对于安卓和Java都比较新手。我希望当用户按下“创建新项目”按钮时,会弹出一个对话框要求用户输入项目名称。我已经完成了这部分,但是接下来我想实现的是,当用户在那个对话框上按下“确认”按钮时,我的代码将使用该名称创建一个目录,位于我的data/data文件夹中,然后在该目录内创建名为1到5或更多的文件夹。我真的不知道如何去做,所以非常感谢任何建议。

5个回答

42

正如sgarman所建议的,您可以使用SD卡(我认为这更好),但如果您想使用您的应用程序目录,您可以通过从活动中调用getFilesDir()来获取它,它将返回/data/data/your.app/filesFile对象,然后您可以获取路径并附加新目录:

String dirPath = getFilesDir().getAbsolutePath() + File.separator + "newfoldername";
File projDir = new File(dirPath);
if (!projDir.exists())
    projDir.mkdirs();
...

谢谢。你觉得这个怎么样 File projDir = new File(getFilesDir(), "newfoldername"); File projDir = new File(dirPath); if (!projDir.exists()) projDir.mkdirs(); 这应该可以工作吧? - Muhammad Babar
1
如果设备中没有SD卡怎么办? - Mitulát báti

6

获取位于外部存储器Android/data/packagename目录下,适用于主设备所有者的目录的正确方法,就是在可用的Context上调用getExternalFilesDir()。

也就是说,

File folder = context.getExternalFilesDir("YOUR FOLDER NAME");

并且你还需要在清单文件中添加写入权限。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

1

请查看getFilesDir方法,它将返回您要查找的目录。您可能还想创建一个子目录。


1

您必须尝试以下方法才能在 Android/data/data/your.app/ 中创建文件夹。请在您的 onCreate 方法中使用此代码。

File file = this.getBaseContext().getExternalFilesDir("yourFolderName");
    if (!file.exists())
        file.mkdir();

0

这个方法在我的应用中有效。我使用了上面讨论的所有方法,但都不起作用。

File file = new File(Environment.getExternalStorageDirectory().toString() + "/Android/data/com.package_name/your_folder_name")

这个方法用于在您的应用程序数据目录中创建文件夹。该文件夹中的图像和视频无法在图库中访问,但可以通过文件夹路径手动访问所有文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接