Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.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
存储到SD卡时,Android中可接受的文件名是什么_Android - Fatal编程技术网

存储到SD卡时,Android中可接受的文件名是什么

存储到SD卡时,Android中可接受的文件名是什么,android,Android,尝试保存到外部缓存目录(SD卡)时出现以下错误: 使用以下代码: File sdCard = ctx.getExternalCacheDir(); File dir = new File(sdCard.getAbsolutePath() + "/files/"); dir.mkdirs(); File file = new File(dir, mFileName); fos = new FileOutputStream(file); fos.write .... 但在找不到SD卡时保存到设备可

尝试保存到外部缓存目录(SD卡)时出现以下错误:

使用以下代码:

File sdCard = ctx.getExternalCacheDir();
File dir = new File(sdCard.getAbsolutePath() + "/files/");
dir.mkdirs();
File file = new File(dir, mFileName);
fos = new FileOutputStream(file);
fos.write ....
但在找不到SD卡时保存到设备可以正常工作:

fos = ctx.openFileOutput(mFileName, Context.MODE_PRIVATE);
fos.write ....
当试图保存到SD缓存时,文件名结尾中的
?1385609534
是否会将其弄乱


谢谢。

有些文件系统不允许使用某些字符。您可以在此处查看哪个文件系统不能使用哪个字符:

在您的情况下,最有可能是FAT32,因此:

除值0-31、127(DEL)和:“*/:<>?\ \ \ \ \+,.;=[](小写a-z存储为a-z)之外的任何字节。对于VFAT LFN,除NUL以外的任何Unicode


我最终替换了所有非法字符:

mFileName = mFileName.replaceAll("[|?*<\":>+\\[\\]/']", "_");

mFileName=mFileName.replaceAll(“[|?*”
是保留字符。有关详细信息,请参阅此答案。
mFileName = mFileName.replaceAll("[|?*<\":>+\\[\\]/']", "_");