什么是文件?
文件是存储在硬盘上的最后的节点
文件夹式什么?
文件的上级单位就是文件夹
文件夹的基本特征?
文件夹式层级化结构,对于同级的节点绝对不可以重名,子节点和父节点可以同名
操作文件夹和文件的命名空间 —- System.IO
操作文件的类:Directory 静态类,工具类,不能实例化
Directory.CreateDirectory ()创建文件夹,参数文件夹路径
Directory.Exists (filePath) 检测文件夹是否存在
Directory.Delete (filePath) 删除文件夹,保证文件夹存在,删除的文件夹下不能有子文件,否则会报错
我们可以使用第二个参数为true去删除存在子文件的文件夹
使用该删除方法,回收站或废纸篓是找不到。
Directory.Move (filePath, path + "/Resources/MyNewFile");
移动文件夹,对文件夹进行重命名
第一个参数:文件夹的路径
第二个参数:生成新的文件夹的路径,可以不同名
string[] files = Directory.GetFiles (filePath);
获取指定文件夹下的所有文件(不包括子文件夹)
string[] directorys = Directory.GetDirectories (filePath);
获取指定文件夹下的所有子文件夹
string current = Directory.GetCurrentDirectory ();
获得当前工程所在的绝对路径
File的操作, File.Open, File.Create, File.Delete, File.Exists, File.Move,
与Directory类型,
注意对文件操作需要有后缀
Try{代码块1}catch(System.Exception ex){代码块2}
代码块1: 如果代码块1的代码运行过程中有错误,会执行代码块2,不会影响try-catch后的代码执行
close():关闭文件,如果你使用代码开启了一个文件却没有close,那么这个文件一直被占用,别人将无法使用
为了保证文件读取或者写入出现错误影响下面代码执行(影响文件关闭),使用try-catch的方式,把文件的读取或者写入都放在try-catch里,保证文件使用完后肯定会关闭
FileStream.Rend(array, offset, count)
Array:存放读入数据的字节数组
Offset:偏移量,从数组的哪一个位置开始存放
Count:读取多少位
编码格式的选择:文件以什么方式编码格式进行存储就要以相对应的编码格式进行解码
FileStream.Write(array, offset, count)
Array:要写入的内容
Offset:偏移量,从字节数组的哪一位开始写入
Count:写入的数量
FileMode.Open :打开文件,游标在开始
FileMode.Create :如果文件不存在创建,存在打开,游标在开始
FileMode.Append : 追加。如果文件不存在创建,存在打开打开文件,游标在文件末尾。
游标:文件游标类似于数据的索引值,能通过游标定位读取写入的位置。
Seek 方法可以移动游标
Begin:表示从头向后移,第一参数是正的
End:表示从尾部向前移,第一个参数是负的
Current:从当前位置移,第一参数可正可负,根据实际情况
文本读写:
StreamReader :必须保证文件存在
ReadToLine:读取一行
ReadToEnd:读到末尾
StreamWrite :
Write: 一个参数时,把文件内容全部清除,然后把内容写入
第二个参数是true时,就是追加
注意:文本读写streamreader和streamwrite是不能对游标进行操作的
.meta:所有的asset下的文件都会自动生成一个.meta的文件,保存一些对应文件的配置信息,如果使用svn的话,注意上传文件时,需要把文件对应的meta文件同时上传,否者你做的文件的一些数据可能丢失
显示meta文件的操作:
Edit -> Project Setting -> Editor -> Version Control Mode -> Visible Meta File
值传递:只传递值,方法内部对其形参进行改变,不影响外部的值, 值类型的都是值传递:int bool struct
引用传递:传的指向值的地址,如果内部对其进行了改变,那么外部也跟着改变
值类型可以使用关键字ref,out进行引用传递
编码格式:
ASCII 编码: 大小写字母,数字和一些符号。A:65,z:122 1字节存储
GB2312 编码:把中文编进去了
Unicode 编码:用2个字节表示一个字符,大多数的操作系统和编程语言都支持
UTF-8 编码:可变长的编码,根据不同内容来使用不同的大小。英文字母数据占1个字节,汉字通常占用3字节
Unity的几个重要特殊固定的文件夹
1.Resources: 文件夹下的资源能通过Resources.Load进行加载(不用加文件后缀),Resources.Load的加载只能加载Resources的文件
可以有一个,可以有个多个.可以在根目录里,也可以在子目录里
Resources文件夹下的资源不管你用还是没用在打包时都会打包进包体
2.StreamingAssets:这个文件夹下的资源也全都会打进包体,与Resources的区别是,Reources会压缩文件,StreamingAssets下的不会压缩,原封不动打进包体.
3.Editor下面的资源文件或者脚本文件都不会被打进安装包,专门放置处理编辑器的脚本
Editor 可以有一个,可以有个多个.可以在根目录里,也可以在子目录里
4.Editor Default Resources:中间带空格,必须放在根目录里
这个下的资源也不会打进安装包
API:
Application.dataPath:工程的Assets目录
Application.streamingAssetsPath:工程中 SteamingAssets的目录
Application.persistentDataPath:应用程序的沙盒目录,打包之前一般没有这个目录,安装完才有意义