我已经将一个非常大的应用程序移植到 Android。它通过 TCP/IP 接收二进制数据,并将其写入应用程序中不时使用的文件。保存文件的目录默认设置为 ./file_cache。这里出错了:
fileHandle = fopen(filename,"wb");
在这种情况下,文件名是“file_i”,其中 i 从 0 开始并为每个文件递增。
程序在写入时崩溃,它不必在第一个文件上崩溃,有时它会到达第 10 个文件。当它崩溃时,fileHandle 最终为 NULL。
文件名最初在 wchar 中,但之前已转换(我在记录器中将其打印出来以确认它是正确的)。
我试过的:
我添加了所有似乎与文件读/写外部存储有关的权限。
我尝试了不同的位置 /sdcard/files 和 /data/data/<package>/files
问题:
当前目录是什么,即文件在默认设置下真正结束的位置是什么?
是什么导致 fopen 返回 null,而这又是导致崩溃的原因?
非常感谢任何想法。