using UnityEngine;
using System.Collections;

//路径工具类
public class PathKit
{ /** 后缀常量字符 */
public const string SUFFIX = ".txt";
const string PREFIX="file://";
const string FORMAT=".unity3d";
public static string RESROOT=Application.persistentDataPath+"/"; public static string GetStreamingAssetsPath (string p_filename)
{
string _strPath = "";
if (Application.platform == RuntimePlatform.WindowsEditor || Application.platform == RuntimePlatform.WindowsPlayer )
_strPath = "file://" + Application.streamingAssetsPath + "/" + p_filename + ".unity3d";
else if (Application.platform == RuntimePlatform.Android )
_strPath = Application.streamingAssetsPath + "/" + p_filename + ".unity3d";
else if ( Application.platform == RuntimePlatform.OSXEditor || Application.platform == RuntimePlatform.IPhonePlayer)
_strPath = "file://"+ Application.streamingAssetsPath + "/" + p_filename + ".unity3d"; return _strPath;
} public static string GetOSDataPath (string p_filename)
{
string path;
path = ""; if (Application.platform == RuntimePlatform.OSXEditor)
path = Application.persistentDataPath + p_filename; if (Application.platform == RuntimePlatform.IPhonePlayer)
path = RESROOT + p_filename; if (Application.platform == RuntimePlatform.WindowsPlayer || Application.platform == RuntimePlatform.WindowsEditor)
path = Application.dataPath +"/cache/"+ p_filename; if (Application.platform == RuntimePlatform.Android)
path =RESROOT + p_filename; // Debug.LogWarning("===========path:"+path);
return path;
} public static string GetURLPath (string p_filename,bool needPreFix,bool needFormat)
{
string path;
path = ""; if (Application.platform == RuntimePlatform.OSXEditor)
path = Application.persistentDataPath+"/" + p_filename; if (Application.platform == RuntimePlatform.IPhonePlayer)
path = RESROOT + p_filename; if (Application.platform == RuntimePlatform.WindowsEditor)
path = Application.dataPath +"/cache/"+ p_filename; if (Application.platform == RuntimePlatform.WindowsPlayer)
path = Application.dataPath +"/cache/"+ p_filename; if (Application.platform == RuntimePlatform.Android)
path = RESROOT + p_filename; if(needPreFix) path=PREFIX+path;
if(needFormat) path=path+FORMAT;
//Debug.LogWarning("===========path:"+path);
return path;
} public static string getFileName(string path)
{ string[] _list= path.Split(new char[]{'/'}); if(_list.Length>) return _list[_list.Length-];
else
return ""; } public static string getFileDir(string path)
{
path = path.Replace("\\","/");
path = path.Substring(,path.LastIndexOf("/"));
return path;
} public static void CreateDirIfNotExists(string path)
{
string dir = getFileDir(path);
if(!System.IO.Directory.Exists(dir))
{
System.IO.Directory.CreateDirectory(dir);
}
} }
 private void SaveFriendToLocal()
{
string cacheStr = "";//内容string path = PathKit.RESROOT + string.Format(CHAT_CACHE_DIR, UserId);
FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter sw = new StreamWriter(fs);
sw.Flush();
sw.BaseStream.Seek(, SeekOrigin.Begin);
sw.Write(cacheStr);
sw.Close();
}
 private void LoadFriendFromLocal()
{
try
{
string path = PathKit.RESROOT + string.Format(CHAT_CACHE_DIR,UserId);
if (!File.Exists(path)) return;
FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Read);
byte[] bytes = new byte[fs.Length];
fs.Read(bytes, , (int)fs.Length);
fs.Close();
mCacheFriend = new List<string> ();string[] arr = Encoding.UTF8.GetString (bytes).Split ('\n');
for (int i = ; i < arr.Length; i++) {
string[] item = arr[i].Split ('\t');
mCacheFriend.Add (item[]);
}
}
catch (System.Exception e)
{
Debug.Log(e.Message);
}
}

unity3d 本地数据存储的更多相关文章

  1. Android本地数据存储复习

    Android本地数据存储复习 Android无论是应用层还是系统层都需要在本地保存一些数据,尤其在应用层中使用的就更为普遍,大体有这么几种:SharedPreference,file,sqlite数 ...

  2. iOS开发——数据持久化&使用NSUserDefaults来进行本地数据存储

    使用NSUserDefaults来进行本地数据存储   NSUserDefaults适合存储轻量级的本地客户端数据,比如记住密码功能,要保存一个系统的用户名.密码.使用NSUserDefaults是首 ...

  3. iOS APP之本地数据存储(译)

    最近工作中完成了项目的用户信息本地存储,查阅了一些本地存储加密方法等相关资料.期间发现了一个来自印度理工学院(IIT)的信息安全工程师的个人博客,写了大量有关iOS Application secur ...

  4. Windows 8 应用开发 - 本地数据存储

    原文:Windows 8 应用开发 - 本地数据存储      在应用中通常会遇到用户主动或被动存储信息的情况,当应用关闭后这些数据仍然会存储在本地设备上,用户下次重新激活应用时会自动加载这些数据.下 ...

  5. iOS开发技术分享(1)— iOS本地数据存储

    iOS开发技术分享(1)— iOS本地数据存储 前言: 我本是一名asp.net程序员,后来加入了iOS游戏开发队伍,到现在也有一年多的时间了.这一年来,每天都干到2.3点钟才睡觉,不为别的,只为了学 ...

  6. 浏览器本地数据存储解决方案以及cookie的坑

    本地数据存储解决方案以及cookie的坑 问题: cookie过长导致页面打开失败 背景: 在公司的项目中有一个需求是打开多个工单即在同一个页面中打开了多个tab(iframe),但是需要在刷新时只刷 ...

  7. Android之ListView,AsyncTask,GridView,CardView,本地数据存储,SQLite数据库

    版权声明:未经博主允许不得转载 补充 补充上一节,使用ListView是用来显示列表项的,使用ListView需要两个xml文件,一个是列表布局,一个是单个列表项的布局.如我们要在要显示系统所有app ...

  8. cocos2d-html5开发之本地数据存储

    做游戏时常常须要的一个功能呢就是数据的保存了,比方游戏最高分.得到的金币数.物品的数量等等.cocos2d-html5使用了html5.所以html5的数据保存方法是对引擎可用的: html5本地数据 ...

  9. 本地数据存储解决方案以及cookie的坑

    本地数据存储解决方案以及cookie的坑 问题: cookie过长导致页面打开失败 背景: 在公司的项目中有一个需求是打开多个工单即在同一个页面中打开了多个tab(iframe),但是需要在刷新时只刷 ...

随机推荐

  1. libevent (二) 接收TCP连接

    libevent 接收TCP连接 Evconnlistener 机制为您提供了侦听和接受传入的 TCP 连接的方法.下面的函数全部包含在`<event2/listener.h>`中. ev ...

  2. webpy使用笔记(二) session/sessionid的使用

    webpy使用笔记(二) session的使用 webpy使用系列之session的使用,虽然工作中使用的是django,但是自己并不喜欢那种大而全的东西~什么都给你准备好了,自己好像一个机器人一样赶 ...

  3. 辐射4 中文武器命名方法, 不用winhex, 直接游戏内操作

    参考资料:https://www.reddit.com/r/fo4/comments/3t354b/tip_you_can_add_text_formatting_italic_underline/h ...

  4. Cocos2d-x3.6 Android编译问题

    在Cocod2d-x论坛上看到越来越多人吐槽新版本更新太快,改动太大,而且经常有BUG导致升级要折腾很久很久..但我就是喜欢折腾,喜欢升级到最新版本,看看有了哪些新功能,哪些改进.为此也折腾了不少,遇 ...

  5. hibernate主键生成策略(转载)

    http://www.cnblogs.com/kakafra/archive/2012/09/16/2687569.html 1.assigned 主键由外部程序负责生成,在 save() 之前必须指 ...

  6. 记录js的一些小技巧

    1.取数组最大值,最小值 Math.max.apply(null,[1,2,3,32,3]); Math.min.apply(null,[1,2,3,32,3]); 2.旧版IE setTimeout ...

  7. [读书笔记]C#学习笔记七: C#4.0中微小改动-可选参数,泛型的可变性

    前言 下面就开始总结C#4.0的一些变化了, 也是这本书中最后的一点内容了, 这一部分终于要更新完了. 同时感觉再来读第二遍也有不一样的收获. 今天很嗨的是武汉下雪了,明天周六,一切都是这么美好.哈哈 ...

  8. Atitit.人力资源管理原理与概论

    Atitit.人力资源管理原理与概论 1. 人力资源管理 第一章 人力资源管理概述 第二章 人力资源理论基础与发展演变 第三章 人力资源规划 第四章工作分析与工作设计 第五章 员工招聘与录用 第六章 ...

  9. paip.提升性能---mysql 优化cpu多核以及lan性能的关系.

    paip.提升性能---mysql 优化cpu多核以及lan性能的关系. 作者Attilax  艾龙,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http:/ ...

  10. 分析system_call中断处理过程

    分析system_call中断处理过程 上周我们使用gcc内嵌汇编调用系统调用,这次我们具体分析下过程. 将getpid嵌入menuos 代码从github下载,步骤如下: 1. 增加一个函数,get ...