递归火山软件开发平台

标题: 火山安卓“读入共享文件”的问题 [打印本页]

作者: 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