存储到SD卡时,Android中可接受的文件名是什么
尝试保存到外部缓存目录(SD卡)时出现以下错误: 使用以下代码:存储到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卡时保存到设备可
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("[|?*<\":>+\\[\\]/']", "_");