Unity 数据持久化——persistentDataPath储存路径

本文介绍了Unity中StreamingAssets文件夹的读写权限,以及如何在不同平台上使用persistentDataPath进行文件复制,包括编辑器和移动应用环境。还提到在调用外部软件时,文件路径的特殊处理规则。
摘要由CSDN通过智能技术生成

Unity中:

StreamingAssets的文件夹,特点是:只能读,不能写.

persistentDataPath可读可写(但是,此文件夹在Editor阶段没有,手机安装App后自动生成)

可以将一些必需的文件先放在StreamingAssets,在App安装后Copy到persistentDataPath文件夹

public void copy(string fileName = "test.txt")
{
    //文件地址
    string url;
    //Mac,Windows或Linux平台
    #if UNITY_EDITOR || UNITY_STANDALONE 
    url = $"file://{Application.dataPath}/StreamingAssets/{fileName}";
    //ios平台路径
    #elif UNITY_IPHONE
            url = $"file://{Application.dataPath}/Raw/{fileName}";
    //安卓路径
    #elif UNITY_ANDROID
            url = $"jar:file://{Application.dataPath}!/assets/{fileName}";

    #endif

    string persistentUrl = $"{Application.persistentDataPath}/{fileName}";

    if (!File.Exists(persistentUrl))
    {
        Debug.Log($"{persistentUrl} 文件不存在,从StreamingAssets中Copy!");
        WWW www = new WWW(url);
        while (true)
        {
            if (www.isDone)
            {
                if (www.error == null)
                {
                    //本次读的文本 
                    File.WriteAllText(persistentUrl, www.text);   
                    File.WriteAllBytes(path, www.bytes);
                    Debug.Log($"持久化目录: {persistentUrl}");
                    break;
                }
                else
                {
                    Debug.LogWarning($"没得到StreamingAssets的文件 : {fileName}");
                }
            }
        }
    }
    else
    {
        Debug.Log($"{persistentUrl} 文件已存在!");
    }
}

PC路径:C:/Users/admin/AppData/LocalLow/DefaultCompany/OurTest/PublicObj/test.txt

安卓:/storage/emulated/0/Android/data/com.OurTest.PublicObj/files/test.txt

PS:项目中用到调用win自带软件调取对应路径文件的功能,经测试,路径指定时不能是

“***/***/***/*******.***”形式

要改为“***\\***\\***\\*******.***”,如果遇到类似的问题,可以尝试修改看看。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值