Java Can';t在SD卡上创建应用程序目录

Java Can';t在SD卡上创建应用程序目录,java,android,android-sdcard,Java,Android,Android Sdcard,我正在开发一个应用程序,可以在SD卡上存储照片。首先在代码中检索SD卡路径,因为getExternalStorageDirectory()不会返回准确的SD卡路径。 然后我尝试创建一个目录来存储图片: String PACKAGE_NAME = "com.example.me.sdapp"; // sdpath = "/storage/extSdCard/" String path = sdpath+"Android/data/"+PACKAGE_NAME; File folder = new

我正在开发一个应用程序,可以在SD卡上存储照片。首先在代码中检索SD卡路径,因为getExternalStorageDirectory()不会返回准确的SD卡路径。 然后我尝试创建一个目录来存储图片:

String PACKAGE_NAME = "com.example.me.sdapp";
// sdpath = "/storage/extSdCard/"
String path = sdpath+"Android/data/"+PACKAGE_NAME;
File folder = new File(path);
if (!folder.exists()){
   var = folder.mkdirs();
   if (!folder.canWrite()){
       Log.d("SD Card app", "Directory is not writable");
   }
}
目录未生成,日志消息未显示。因此,我想我不能在那个地方写信。 但是,我可以在使用adb shell运行时手动创建目录:

mkdir /storage/extSdCard/Android/data/com.example.me.sdapp
手动创建目录后,可以从应用程序将图片存储在其中

为什么我不能从应用程序在SD卡上创建我的应用程序文件夹,但一旦手动创建了文件夹,我仍然可以从应用程序向其写入文件?如何从应用程序中创建该文件夹

我已尝试在有或没有舱单许可的情况下使其工作:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE>

**用于路径检索**

File direct = new File(Environment.getExternalStorageDirectory() + "Your folder path" );
       if (!direct.exists()) {
                              mkdir();
                                         }

这将为您提供SD卡的正确路径。

如我所述,Environment.getExternalStorageDirectory()不返回SD卡路径,而是返回设备的内部存储路径。您可以从中了解到,该方法并不总是返回SD卡位置。无论如何,AFAIK检索路径并不是真正的问题。
这将为您提供SD卡的正确路径。
。不会。这永远不会给出SD卡的路径。也许在安卓2.2上。但不迟。我不知道是谁投票给你的。
我就是无法让它发挥作用。对我来说,你的问题是什么,你想要什么都不清楚。毫无疑问,你完全正确。我正在尽快重新措辞。