Unity文件和目录操作

Unity的常用路径:

        1、Resources 目录

        2、Application.dataPath :  Unity3D的开发资源存储目录,在编辑器状态下有效

                                                                  打包之后,该目录会消失,打包后不要使用

                                                     开发编辑器功能使用,在编辑器调试状态下会利用这个目录的上级目录存储文件

                                                     该方法返回的就是Assets的一个路径字符串

        3、Application.streamingAssetsPath : 【不可写】

                                                      举个例子:下载完游戏,有一个资源解压的过程,那就是在该文件下解压,解压到下面的可写的                                                                           文件里。

                                                       需要手动建立,必须叫StreamingAssets文件目录

                                                       编辑器调试阶段,用于读写测试

                                                       打包阶段,用于存储资源或文件,解压到可写目录

                                                       编辑器状态下,存储在Assets/StreamingAssets/路径下,可读可写。

                                                       打包状态下,存储在包体内StreamingAssets目录下,只读不可写

                                                       该方法返回的是 Assets 文件下的特定的StreamingAssets资源目录 的路径字符串

        4、Application. persistenDataPath   :  【可写】

                                                       打包之后 唯一可写的文件目录

                                                       操作系统给出应用的可读可写目录,用于存储应用的数据

                                                       C://Users/HXSC-BASIC/AppData/LocalLow/DefaultCompany/IO
                                                                      DefaultCompany:  打包时设置的公司名      

                                                                      IO  :自己的项目名称   其方法返回的就是这么一个 路径字符串

 

目录操作   手册查找      c# 手册  http://msdn.microsoft.com

                                      Unity3D手册    http://docs.unity3d.com/ScriptReference/index.html

                 引入System.IO命名空间

                 Directory类  Directory.CreateDirectory(路径)    :  Path:被创建的路径的字符串表达式

                                                                                                特性:自动帮建立不存在上级目录

                                     Delete :  功能:删除路径, 参数里若是加上true 则会遍历该路径下所有的文件进行删除

                                                      参数: Path : 需要删除的路径的字符串表达式

                                                                  Recursive:是否递归删除子目录及文件

                                     Exists :  功能:检查路径是否存在

                                                      参数:Path: 需要检查的路径的字符串表达式

                                                      返回值:true: 存在路径    false : 不存在路径

                                     Move :   功能:移动或改名      Directory.Move(路径 + " /a" , 路径 + “/b” ) 将a 目录改名 为b 

                                                                                        Directory.Move(路径 + " /a" , 路径 + “/c/b” )  移动到c目录

                                                      参数:原始路径的字符串表达式

                                                                 目标路径的字符串表达式

                                    GetFiles : 功能:获取下一级文件

                                                       参数:需要查找的路径字符串表达式(默认搜索一级)

                                                            重载1: 搜索规则(“a*”: 以a开头的目录,“*a”: 以a结尾的目录,“*a*”:包含a 的目录)

                                                            重载2 :是否搜索子目录(0: 顶级目录搜索,1: 所有子目录搜索)

                                                       返回值: 所有子路径字符串数组

                                    GetDirectories: 功能:获取下一级子目录,参数里若是加上 “a*”,则会获得该路径下所有自路径中以 字                                                                 母a 开头 的路径

                                                                参数里加上“a*”, SearchOption.AllDirectories

                                                                    a*代表以a开头    *a代表以a结尾   *a*代表包含a    *叫做通配符

                                                                参数:需要查找的路径字符串表达式(默认搜索一级)

                                                                           查找到规则

                                                          重载1     搜索规则(“a*”: 以a开头的目录,“*a”: 以a结尾的目录,“*a*”:包含a 的目录)                                                            重载2     是否搜索子目录(0: 顶级目录搜索, 1: 所有子目录搜索)

                                                                返回值:所有子路径字符串数组

                                     DirectoryInfo类 : 小知识点,若是想要给文件加两种状态,一般在符号 |  然后直接在后面加状态

                                                                  获取一个目录的信息类

                                                        创建一个目录的信息实例:  DirectroyInfo  info  =  new DirectoryInfo(需要获得信息的路径)

                                                                     Attributes属性(设置或者获得目录的属性)

                                                                     设置单个属性:info.Attributes = FilcAttributes.Hidden

                                                                     设置多个属性:info.Attributes = FilcAttributes.Hidden | FileAttributes.ReadOnly

文件操作

              byte和bit    bit : 010101010101010101  是最小的01存储位

                                byte: 一个字节byte = 8bit     构成256个ASCII码  一个ASCII码就是一个字节

              文件编码:  GB2312:最早的字符编码集:   2个字节代表一个中文字符,一个中文字符有16bit ,

                                                                                   中文2个字符  英文1个字符

                                  GBK: 涵盖中文简体和中文繁体的字符编码集(ANSI) 中文2个字符  英文1个字符

                                  UTF-8 : 全球中文编码,可变的byte 

                                                                    英文1个字符,中文一般是3个字符;英文标点1个字符,中文标点3个字符

                                  Unicode:中文2个字符,英文2个字符,中文符号2个字符,英文符号2个字符

               换行符:  Windows: /r/n          Linux, Unix , OSX: /n

               时间: 世界统一时间 UTC           时间戳 以1907年1月1日0分0秒到现在的秒数(0时区测算)

                                                                               服务器会以0时区记录的时间,在通过玩家所在时区转换为当地时间

               File类    Exists  功能:判断文件是否存在    参数:文件所在路径      返回值:true(存在),false(不存在)

                            Delete 功能: 删除文件    参数: 文件所在路径    功能: 移动文件或重命名文件

                            Move  功能:移动文件或者重命名文件    参数:文件原始路径  /  文件移动过后路径

                                       特性: 如果文件名和老的文件名一直,则只移动, 如果文件名和新的文件名不一致,则修改名称

                                               (和移动)

                            Write 功能:快捷写入文件,如果文件原来存在覆盖,原来不存在创建,

                                                WriteAllBytes   WriteAllLines  WriteAllText

                                      参数:文件存储路径; byte[]:内容byte数组(System.Text.Encoding.UTF8.GetBytes(字符串)获得)

                                                 string[]:写入一行行的字符串,数组每一个元素,就是一行 ;  string:将字符串整体写入文件

                             Read  功能: 快捷读取文件   ReadAllBytes  ReadAllLines  ReadAllText

                                        参数:文件存储路径

                                        返回值:byte[] : 内容byte数组(System.Text.Encoding.UTF8.GetString(byte[]) 获得原始字符串)

                                                       string[] : 文件一行行的字符串内容

                                                       string : 文件整体的字符串内容

                             Copy  功能:复制一个文件

                                        参数:原始路径            备份文件的路径:如果原始文件存在,是否覆盖

                             Create:

              Using : 所有实现IDispose接口的类,都会继承dispose方法,当你使用完这种类的实例后,应该调用dispose方法释放资                                    源,否则系统可能会因为未释放资源导致运行错误

                           好比在图书馆借书 需要还书,dispose就是还书的方法

                           using(资源创建代码){//隐形调用dispose}     小括号里的东西在应用后,除了大括号,会 自动引用dispose(),                                                                                                       释放资源

                                                                                             using会调用小括号中的资源创建代码,当using内部代码执行完成后                                                                                              (闭合大括号),using会自动帮调用IDispose实现类的dispose方法

             FilesStream: FileStream SA = new FileStream() :  最底层的文件操作类

                                           创建实例: FileStream fs = new FildStream(路径,打开类型,读写方式)

                                           打开类型(FileMode) Create: 创建新的,存在就覆盖

                                                                           OpenOrCreate:存在就打开,不存在就创建

                                                                            Truncate: 把原来的清空,再打开

                                                                             Append: 向原文件中追加

                                           读写方式(FileAccess) 读 Read   读写 ReadWrite   写  Write

                                    API   :

                                      byte[] buffer = new byte[]  设置缓冲区

                                      SA.Seek()  游标设置为0,从头开始读

                                                                                从尾开始读

                                                                         还有一个枚举状态

                                      SA.Read(buffer, 0.3)    读取 文字

                                                                           参数: 存储缓冲区 ; 缓冲区起始位(偏移量) ; 缓冲区读取长度

                                      SA.Write()    写入文件          参数:存储缓冲区    缓冲区起始位(偏移量)   缓冲区长度

                                      SA.Flush()   刷新缓存          通过刷新缓存,将文字输入,否则相当于文字在缓存里面,没有在硬盘里,                                                                                    容易出错

                                      SA.Close() 

                                      string a = Encoding.UTF8.Getstring()       这个API 需要引用Using System . Text 命名空间

 

             FileInfo 类

 

             StreamReader   API : StreamReader se = new StreamReader()

                                                se.Peek() 获取下一个字符,当读到文件结束时返回-1    ;   

                                                se.ReadLine()  读取文件一行内容,不受系统的换行符影响,每次读取行游标会向下一次

                                                se.ReadToEnd()  读取当前行标到文件结尾的所有字符串内容

                                       参数:文件所在路径    文件内容的编码字符集

            StreamWriter      API:  StreamWriter sw = new StreamWriter (路径,false , Encoding, UTF8)

                                                         路径:写入文件的路径     false:是否使用追加,bool类型,决定能够是否覆盖还是叠加文字

                                                         UTF8 写入文件的字符集编码

                                                sw.Writeline()  向文件内写入一行字符串,自动添加换行符

                                                sw.Write("\r\n")   向文件内写入内容        \r\n是用来换行的    

                                                sw.Fulse()  刷新缓存

             哈希值的计算:  MD5  :

                                                  字符串:  同一个字符串,多次MD5后的结果是相同的,所以可以用来储存密码,放置密码文泄                                                       露,再次输入密码时,只需要再进行一次MD5运算,与原MD5串一致,即表示再次输入密码正确

                                                 文件   :只要文件的内容不修改,每次进行MD5运算时,MD5运算结果都一样,所以可以使用文                                                                 件的MD5进行判断文件是否修改过

                                                   作用: 判断文件是否非修改

                                                               加载文件,就判断,不对的话,重新下载

                                       SHA1

              WWW    :         初始化: WWW www = new WWW (需要下载的文件URL地址)

                                       isDone: 表示下载或请求是否成功

                                       text: 下载文本内容

                                       bytes: 下载的文件字节数组

             DataTime :       c#的事件记录对象

                                      Tostring : 可以根据格式对照表,生成对应的易于略读的事件

        

         注意: 写的所有日志,在打包后,记得要删除,否在会影响游戏性能

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值