【需求】一个软件会不断生成新的图片,保存在我指定的目录下。我的任务是:每生成一个新图片,就把它切成两张图,保存在别的地方。
【解决问题的要点】
1. C#读取文件的方法:
(1)通过FileInfo和DirectoryInfo类来读取文件和文件夹属性(用来创建文件夹、获取文件夹中所有文件的数组)
(2)通过File读写文件(读取指定文件的数据)
(3)使用流来读写文件 FileStream
StreamReader(读取流-读取数据)StreamWriter(写入流-向别人传输)
2.Unity中的相对路径
System.Environment.CurrentDirectory // 获取项目根目录路径
Application.dataPath // Assets 文件夹的绝对路径(例如:E:/Projects/dev/Client-Unity)
Application.streamingAssetsPath // StreamingAssets 文件夹的绝对路径(例如:E:/Projects/dev/Client-Unity/Assets)
3.C#对文件夹中的文件按照创建时间排序
private void SortAsFileCreationTime(ref FileInfo[] arrFi)
{
Array.Sort(arrFi, delegate(FileInfo x, FileInfo y) { returnx.CreationTime.CompareTo(y.CreationTime); });
}
(1)采用Resource.Load方法读取,读取在Unity中Assets下Resources目录下的资源名,注意不采用后缀名。(意思是Load方法直接在Resources目录下找资源,路径已经指定)。
(2)采用WWW类加载资源,此WWW类可以加载网络资源(http://格式),文件协议资源(flie://格式),ftp格式等等。
(3)采用C#Texture2D的LoadImage函数,读取png或者jpeg格式的图片数据。
5.代码:
(1)监听目标文件夹的文件数量,一旦有新文件,就立刻裁剪、加入生成队列。