我正在开发一个视频编辑器程序,对于安卓和Java都比较新手。我希望当用户按下“创建新项目”按钮时,会弹出一个对话框要求用户输入项目名称。我已经完成了这部分,但是接下来我想实现的是,当用户在那个对话框上按下“确认”按钮时,我的代码将使用该名称创建一个目录,位于我的data/data文件夹中,然后在该目录内创建名为1到5或更多的文件夹。我真的不知道如何去做,所以非常感谢任何建议。
我正在开发一个视频编辑器程序,对于安卓和Java都比较新手。我希望当用户按下“创建新项目”按钮时,会弹出一个对话框要求用户输入项目名称。我已经完成了这部分,但是接下来我想实现的是,当用户在那个对话框上按下“确认”按钮时,我的代码将使用该名称创建一个目录,位于我的data/data文件夹中,然后在该目录内创建名为1到5或更多的文件夹。我真的不知道如何去做,所以非常感谢任何建议。
正如sgarman所建议的,您可以使用SD卡(我认为这更好),但如果您想使用您的应用程序目录,您可以通过从活动中调用getFilesDir()
来获取它,它将返回/data/data/your.app/files
的File
对象,然后您可以获取路径并附加新目录:
String dirPath = getFilesDir().getAbsolutePath() + File.separator + "newfoldername";
File projDir = new File(dirPath);
if (!projDir.exists())
projDir.mkdirs();
...
获取位于外部存储器Android/data/packagename目录下,适用于主设备所有者的目录的正确方法,就是在可用的Context上调用getExternalFilesDir()。
也就是说,
File folder = context.getExternalFilesDir("YOUR FOLDER NAME");
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
您必须尝试以下方法才能在 Android/data/data/your.app/ 中创建文件夹。请在您的 onCreate
方法中使用此代码。
File file = this.getBaseContext().getExternalFilesDir("yourFolderName");
if (!file.exists())
file.mkdir();
这个方法在我的应用中有效。我使用了上面讨论的所有方法,但都不起作用。
File file = new File(Environment.getExternalStorageDirectory().toString() + "/Android/data/com.package_name/your_folder_name")
这个方法用于在您的应用程序数据目录中创建文件夹。该文件夹中的图像和视频无法在图库中访问,但可以通过文件夹路径手动访问所有文件。
File projDir = new File(getFilesDir(), "newfoldername"); File projDir = new File(dirPath); if (!projDir.exists()) projDir.mkdirs();
这应该可以工作吧? - Muhammad Babar