Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android Studio文件夹没有´;不要被创造_Java_Android_File - Fatal编程技术网

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卡的本地存储上创建文件夹吗?