Java Android Studio文件夹没有´;不要被创造
我正在尝试在我的设备上创建一个文件夹,但结果不符合预期 我在Java Android Studio文件夹没有´;不要被创造,java,android,file,Java,Android,File,我正在尝试在我的设备上创建一个文件夹,但结果不符合预期 我在AndroidManifest.xml中确实有 我的代码: public void saveOnDevice(){ String root = Environment.getExternalStorageDirectory().toString(); File myDir = new File(root + "/hello"); boolean x = true; if (!myDir.exists())
AndroidManifest.xml
中确实有
我的代码:
public void saveOnDevice(){
String root = Environment.getExternalStorageDirectory().toString();
File myDir = new File(root + "/hello");
boolean x = true;
if (!myDir.exists()) {
x = myDir.mkdirs();
}
if(x) {
System.out.println("Folder created " + root);
}
else{
System.out.println("Folder not created" + root);
}
}
结果:
Folder not created /storage/emulated/0
预期:
Folder created /storage/emulated/0
我在三星Galaxy S8上试过这个。我没有插入SD卡。我的设备上没有路径
/storage/simulated/0
。为什么它不工作?我如何解决此问题?您的设备上确实有该文件夹/存储/模拟/0。在使用Samsungs文件浏览器时,由于抽象层的原因,您可能无法看到它
您可以使用更高级的文件浏览器(如FX file Explorer())来验证这一点,并从“System/”开始查找该路径
那个root
字符串对你没有帮助
相反,您希望执行以下操作:
// create folder "myDir" in internal storage as sub directory of /storage/emulated/0
File myDir = new File(Environment.getExternalStorageDirectory(), "myDir");
// create file
File myFile = new File(myDir, "song.mp3");
// get file stream
FileOutputStream fileStream = new FileOutputStream(myFile);
然后,您只需将歌曲内容写入fileStream
Environment.getExternalStorageDirectory()
实际上提供了内部存储位置,但它位于应用程序目录的外部,类似于Android/your.apps.packagename/
Environment.getExternalStorageDirectory().toString(),您试图保存到SD卡,您需要使用GetFileDir()或getCacheDir()在设备上保存或插入SD卡。@MitchellMonarch我获得了路径并创建了文件,但我无法访问它。我如何访问它?我想将mp3文件保存在此文件夹中。没有其他解决方案可以在没有sd卡的本地存储上创建文件夹吗?