在我的StartActivity上,我想在SD卡上为应用程序创建一个文件夹。现在我首先在manifest.xml中设置权限,如下所示
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
比我在我的StartActivity上的onCreate
方法中编写一些代码
//Creat an AppFolder
String appPathString = Environment.getExternalStorageDirectory().getPath() + "/MyIdea";
try {
File appPath = new File(appPathString);
if (!appPath.exists()) {
appPath.mkdirs();
Toast.makeText(getApplicationContext(), "Folder created", Toast.LENGTH_LONG).show();
}
} catch (Exception e) {
Log.e("saveToExternalStorage()", e.getMessage());
}
现在我在应用程序启动时在我的Nexus 5上运行应用程序并且正在显示toast。但是,如果我继续我的设备,我找不到任何名称,即创建的文件夹。有什么问题?
答案 0 :(得分:0)
试试这段代码。这个对我有用 。您需要指向存储的AbsolutePath
String state;
state = Environment.getExternalStorageState();
if ((Environment.MEDIA_MOUNTED).equals(state)) {
File root = Environment.getExternalStorageDirectory();
File Dir = new File(root.getAbsolutePath() + "/My Ideas");
if (!Dir.exists()) {
Dir.mkdir();
}
答案 1 :(得分:0)
我只是想知道,(我知道,我们不会写任何东西)但是请尝试调用appPath.flush();和appPath.close();
当我添加WRITE权限时,我还添加了READ,以确保!
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
答案 2 :(得分:0)
经过短暂的搜索,我发现,我需要特殊的使用权限为Android sdk 23.所以我改变了我的机器人
<uses-permission-sdk-23
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="23"
/>
现在它工作正常。谢谢大家的支持!