递归火山软件开发平台
标题:
火山安卓“读入共享文件”的问题
[打印本页]
作者:
xuehuikuaile
时间:
前天 22:07
标题:
火山安卓“读入共享文件”的问题
火山安卓,用“读入共享文件“方法时,其目录参数(第一个参数)如果直接用其默认值”安卓配置信息.文档目录“,则无法正确读入数据(返回一个空对象),而如果用其目录下的子目录,则能正确读入文件。比如以下语句:字节集1 = 读入共享文件 (安卓配置信息.文档目录, "sqlite1.db3", ),将返回一个空对象,如果改为:字节集1 = 读入共享文件 (安卓配置信息.文档目录 + "/myapp", "sqlite1.db3", ),则能正确读入字节集对象,不知大家有没有遇到过这种情况?
作者:
创世魂
时间:
昨天 10:19
自己的软件创建共享文件的时候,自己创建一个目录进行存储。
也就是在 写出共享文件 的时候,最好是写上一个目录名。
作者:
xuehuikuaile
时间:
昨天 10:35
更新:大家好!我是题主,昨天发的帖子里描述不准确,后来又试了几次,重新描述一下,恳请大家指导:
我的安卓app涉及一个数据库文件,文件名是“sqlite_1.db3”。用一段时间后里面会有新数据,我想把它在手机的共享文件夹里备份一份,这样以后重新安装程序的话,可以再导入回来使用。我的备份操作代码如下:(里面的“
全_内部私有数据目录
”、 “
字节集1
”是我自定义的成员变量)
复制文件到共享目录 (全_内部私有数据目录.取文件名 () + "/sqlite_1.db3", 安卓配置信息.文档目录 + "/myapp", "sqlite_1.db3", , )
导入操作代码如下:
字节集1 = 读入共享文件 (安卓配置信息.文档目录 + "/myapp", "sqlite_1.db3", )
写出文件 (全_内部私有数据目录.取文件名 () + "/sqlite_1.db3", 字节集1, 真)
我用的模拟器是“MUMU模拟器12”,调试时第一次备份能够成功备份,也能成功导入。紧接着第二次备份再导入时,发现导入的是第一次备份的旧文件,而不是刚刚第二次备份的新文件。我进入“MUMU模拟器12”的文档目录(“Documents/myapp”),发现第二次备份的文件会自动换个名字"sqlite_1(1).db3"保存,而不是我想要的覆盖保存,然后每次备份,均会以此类推换个名字复制到“myapp”子目录里保存,这样导致我导入文件的时候就会导入旧文件,而不是新文件。
更大问题是,如果重新调试程序,即相当于重新安装程序后,导入文件就无法正确导入了:“
读入共享文件
”返回的是空对象!备份也无法正确备份:“
复制文件到共享目录
”返回的是“假”!不过,如果我进入“MUMU模拟器12”的文档目录里(“Documents/myapp”),手动删除上次的所有备份文件以后,
就又能成功
备份和导入了。
以上描述的问题也不知是我操作的问题,还是开发环境的问题,恳请大家多多指导。(代码既然能第一次备份和导入成功,我想应该是没问题的吧?)
作者:
xuehuikuaile
时间:
昨天 10:39
创世魂 发表于 2025-4-3 10:19
自己的软件创建共享文件的时候,自己创建一个目录进行存储。
也就是在 写出共享文件 的时候,最好是写上一 ...
谢谢您!确实是应该自己创建一个存储目录的。不过后来又遇到一个问题,见我刚才的“更新.....”帖子(3楼)
作者:
xuehuikuaile
时间:
昨天 12:23
补充:我想干脆用代码删除共享文件以后再备份,
代码是:
删除共享文件 (安卓配置信息.文档目录+ "/myapp", "sqlite_1.db3")
结果也不行:
“
删除共享文件
”返回是“假”。
改为删除"/myapp"子目录也仍然返回“假”。
改成以下“写出共享文件”方式,也不成功:
字节集2 = 读入文件 (全_内部私有数据目录.取文件名 () + "/sqlite_1.db3")
写出共享文件 (安卓配置信息.文档目录 + "/myapp",
"sqlite_1.db3"
, 字节集2, , )
目前,用“安卓共享文件类”里的 “复制文件到共享目录()”、“读入共享文件()
”、“
删除共享文件()”、
“写出共享文件()”
等方法均不成功,我是新手,恳请大家指导为盼!
作者:
xuehuikuaile
时间:
9 小时前
今天又研究了半天,发现好像是这种情况:
小程序在共享文件目录
(
Documents
)
里只能读写自己建立的文件,而且是当前版本建立的文件,如果卸载以后重新安装小程序,那么卸载以前建立的文件就不能读写了!
比如我的小程序叫“myapp”,它用“写出共享文本文件()
”在共享目录(
Documents
)里新建了个“mytxt.txt”
文件,然后用“
读入共享文本文件()
”能够正常读出这个文件内容。然后,我卸载“myapp”,重新安装,这时就读不出原来保存的
“mytxt.txt”
文件
内容了,也无法重新建立
“mytxt.txt”
文件。只能手动进入
共享目录
(
Documents
)
手动删除原来的
“mytxt.txt”
文件,才又能新建
“mytxt.txt”文件
和读写操作了。
通过“帮助页”查看“
读入共享文件()”的定义文件,代码中好像要cha询一个数据库,感觉好像该数据库里登记了本软件所有在共享目录里的操作,如果共享目录里的文件没有在这个数据库里登记过,就无法读写删改。
如果真是这样,那么共享目录不就失去意义了吗?唉!搞不明白,恳请指导为盼。
欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/)
Powered by Discuz! X3.4