此问题与this question无关。我已经看过了,但它是SPECIFIC Android 4.4.2问题,因为该代码在其他Android版本上运行良好。
final File path = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/MY_Downloads");
if (!path.exists()) {
path.mkdir(); // also tried it with path.mkdirs();
context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(path)));
}
我正在使用此代码创建 FILE 而不是Android 4.4.2上的文件夹。请帮助我已经阅读了这个article
我已授予以下权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE" />
<uses-permission android:name="android.permission.WRITE_USER_DICTIONARY" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
我知道如何访问SD卡以及有关公共目录的最新更改,但我想创建一个FOLDER而不是文件
答案 0 :(得分:1)
前几代Android设备总是使用SD卡进行存储和访问,这只是使用SDK方法提供的路径
Environment.getExternalStorageDirectory()
。
很快,新的设备开始出现大型内部存储分区,这些分区被映射为外部存储,以便调用环境等方法。
getExternalStoragePublicDirectory(String)
现在指向内部存储而不是物理SD卡。
一些最新的设备,如三星Galaxy Nexus甚至没有SD卡插槽。
我希望这有帮助。
答案 1 :(得分:0)
我在Android 4.4.2上遇到了同样的问题(这不是斜线问题)。
例如,如果我想创建此目录:
myRep/things/logs
它将创建前2个目录,但“logs”将是一个文件,而不是目录。
我通过在日志之后添加另一个目录来解决:
myRep/things/logs/tmp
现在tmp是一个文件,但是日志最终是一个目录。
同样重要的是,在某些设备上,您需要在创建文件后执行其他操作,这对我有用:
File directory = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + '/' + pathToDirectory + "/tmp");
directory.mkdirs();
directory.setExecutable(true);
directory.setReadable(true);
directory.setWritable(true);
MediaScannerConnection.scanFile(context, new String[] {directory .toString()}, null, null);