gpt4 book ai didi

android - 设备上没有剩余空间但 SD 卡未满

转载 作者:太空宇宙 更新时间:2023-11-04 09:54:50 26 4
gpt4 key购买 nike

我有一个安卓应用程序,可以将文件从谷歌文档下载到设备上的 SD 卡。 (原因:有我无法在应用程序中打开的 PDF-s)。
它成功写入 SD 卡,直到我达到 10000 个文件中的第 8000 个文件。

写入SD的代码:

InputStream is = response.getContent();
FileOutputStream fos = new FileOutputStream(new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/"+preferences.getString("username", "manas11")+"/" + tmp_entry.resourceID.replace(":","~_~")+"~_~"+tmp_entry.title));
byte[] buf = new byte[1024];
int len;
while((len=is.read(buf))>0)
fos.write(buf,0,len);

第 2 行抛出的异常:

java.io.FileNotFoundException: /mnt/sdcard/matulic.realestate.hr/file~_~0B3n2EnTf5ATnYTJkNTNmM2QtZDJjYy00YjNhLWJlZjQtYTE4MTU5MjI2N2E5~_~Kuæa Marina Sevid 399.00 m2 - LJETNA AKCIJA IZVRSN - k359.txt (No space left on device)

SD 卡是 microSD™ 存储卡(兼容 SD 2.0),8GB,FAT32 格式。我正在使用 Desire HD。
如您所见,文件名很长。我将文件保存到/mnt/sdcard/中的目录,异常后的状态是(通过 Astro):
大小:519,668,573 字节
文件数:8037
设备自由大小:4.91 G

不知道写SD有没有限制?
谢谢

最佳答案

我相信这个 stackoverflow 问题会回答您的问题。

Is there a limit for the number of files in a directory on an SD card?

我自己也查了一些资料,发现基本上是限制了文件的个数和文件名的长度。根据我在上面链接中引用的 Microsoft 文档中阅读的内容 http://msdn.microsoft.com/en-us/windows/hardware/gg463080.aspx您的文件名长度有问题。

首先是文件名的长度。较长的文件名会占用更多空间。目录中有 65,536 个 32 字节条目的限制。这是因为目录文件容器的最大大小为 2,097,152 字节 (65536*32)。但是,如果您的文件名超过 8.3,它们将占用多个条目。长文件名占用的空间也比简单的字符总和要多。文件系统会产生诸如校验和之类的开销,并附带一个简短的 8.3 文件名。

最好的建议是大幅缩短文件名,这应该可以解决您的问题。

希望这对您有所帮助。

关于android - 设备上没有剩余空间但 SD 卡未满,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6717787/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com