unity對本地文件的相關(guān)操作

一、在桌面創(chuàng)建文件夾 C:\Users\Administrator\Desktop(桌面路徑)

? ? ? ? string path = "c:/Users/Administrator/Desktop/TestFolder"; //TestFolder要創(chuàng)建得文件夾的名字

? ? ? ? if (!Directory.Exists(path))

? ? ? ? {

? ? ? ? ? ? Directory.CreateDirectory(path);

? ? ? ? }



二、(1)讀取文件夾中的圖片(WWW 類加載) 圖片名字為 testPicture.jpg

Texture2D texture;

?IEnumerator loadTexture() {

? ? ? ? //這里的文件路徑 ,需要加上file///

? ? ? ? string str = "file:///c:/Users/Administrator/Desktop/TestFolder/testPicture.jpg";

? ? ? ? www = new WWW(str);

? ? ? ? texture = www.texture;

? ? ? ? yield return texture;? ? //返回出去的texture即為文件夾中名為testPicture的圖片

? ? }

如果想將加載出來的圖片作為cube的材質(zhì)貼到cube上

?StartCoroutine(loadTexture());

? cube.GetComponent().material.mainTexture =texture ;

(2)根據(jù)文件流加載文件夾中的圖片

string imagePath = "c:/Users/Administrator/Desktop/TestFolder/testPicture.jpg";

FileStream files = new FileStream(imagePath, FileMode.Open);

byte[] imgByte = new byte[files.Length]; files.Read(imgByte, 0, imgByte.Length);

files.Close();

Texture2D newtexture = new Texture2D(100, 100); newtexture.LoadImage(imgByte);

將加載出來的圖片貼到cube上

cube.GetComponent().material.mainTexture = newtexture;


三、復(fù)制一個文件夾中的圖片到另一個文件夾中

? ? ? ? StartCoroutine(loadTexture()); //剛才加載出來的圖片? ? yield return texture;?

? ? ? ? byte[] imagebytes = texture.EncodeToJPG();? //texture為加載出來的圖片

??????? //新圖片存放路徑及圖片名CopyTestPicture

? ? ? ? string dirPath = "c:/Users/Administrator/Desktop/NewTestFolder/CopyTestPicture.jpg";

? ? ? ? File.WriteAllBytes(dirPath, imagebytes);


四、讀取文件夾中文件(圖片)個數(shù)

? ? ? ? string dirPath = "c:/Users/Administrator/Desktop/TestFolder";

? ? ? ? //判斷給定的路徑是否存在,如果不存在則退出

? ? ? ? if (!Directory.Exists(dirPath))

? ? ? ? {

? ? ? ? ? ? return;

? ? ? ? }

? ? ? ? int number = 0;

? ? ? ? //定義一個DirectoryInfo對象

? ? ? ? DirectoryInfo folder = new DirectoryInfo(dirPath);

? ? ? ? //通過GetFiles方法,獲取di目錄中的所有文件的大小

? ? ? ? foreach (FileInfo fi in folder.GetFiles())

? ? ? ? {

? ? ? ? ? ? number++;

? ? ? ? }

? ? ? ? print(number);


五、得到文件夾下的所有文件的名字

? ? ? ? string dirPath = "c:/Users/Administrator/Desktop/TestFolder";

? ? ? ? DirectoryInfo dir = new DirectoryInfo(dirPath);

? ? ? ? FileInfo[] files = dir.GetFiles(); //獲取所有文件信息

? ? ? ? foreach (var file in files)

? ? ? ? {

? ? ? ? ? ? print(file.Name);

? ? ? ? }


六、得到文件夾下的所有文件的路徑

?????? string dirPath = "c:/Users/Administrator/Desktop/TestFolder";

? ? ? ? string[] dirs = Directory.GetFiles(dirPath);

? ? ? ? for (int j = 0; j < dirs.Length; j++)

? ? ? ? {

? ? ? ? ? ? print(dirs[j]);

? ? ? ? }


七、刪除文件夾中圖片

? ? ? ? string imagePath = "c:/Users/Administrator/Desktop/TestFolder/testPicture.jpg";

? ? ? ? if (File.Exists(imagePath))

? ? ? ? {

? ? ? ? ? ? File.Delete(imagePath);

? ? ? ? }


八、得到當前文件夾根目錄下所有的文件夾(子文件夾內(nèi)的內(nèi)容不會輸出)或文件名字

????/// <summary>

? ? /// 得到當前文件夾根目錄下所有的文件夾(子文件夾內(nèi)的內(nèi)容不會輸出)或文件名字

? ? /// </summary>

? ? /// <param name="path"></param>

? ? public List<string> GetFolderRootFileName(string path)

? ? {

? ? ? ? List<string> fileNameList = new List<string>();

? ? ? ? string[] directoryEntries = Directory.GetFileSystemEntries(path);

? ? ? ? // DirectoryInfo dir = new DirectoryInfo(dirPath);

? ? ? ? // FileInfo[] files = dir.GetFiles("*", SearchOption.TopDirectoryOnly); //獲取所有文件信息? ? ? ?

? ? ? ? for (int i = 0; i < directoryEntries.Length; i++)

? ? ? ? {

? ? ? ? ? ? string fileName = directoryEntries[i].Split('\\')[1];

? ? ? ? ? ? if (fileName.EndsWith(".meta"))

? ? ? ? ? ? {

? ? ? ? ? ? ? ? continue;

? ? ? ? ? ? }

? ? ? ? ? ? fileNameList.Add(fileName);

? ? ? ? }

? ? ? ? return fileNameList;

? ? }



九、得到當前文件夾下所有的子文件夾內(nèi)的所有文件的路徑(包括子文件夾文件)

????/// <summary>

? ? /// 得到當前文件夾下所有的子文件夾內(nèi)的所有文件的路徑(包括子文件夾文件)FileInfo.FullName/FileInfo.Name

? ? /// </summary>

? ? /// <param name="path"></param>

? ? /// <returns></returns>

? public List<FileInfo> GetAllFileinfoFromPath(string path)

? ? {

? ? ? ? List<FileInfo> fileinfo= new List<FileInfo>();

? ? ? ? DirectoryInfo dir = new DirectoryInfo(path);

? ? ? ? FileInfo[] files = dir.GetFiles("*", SearchOption.AllDirectories); //獲取所有文件信息? ? ? ?

? ? ? ? for (int i = 0; i < files.Length; i++)

? ? ? ? {

? ? ? ? ? ? if (files[i].Name.EndsWith(".meta"))

? ? ? ? ? ? {

? ? ? ? ? ? ? ? continue;

? ? ? ? ? ? }

? ? ? ? ? //? print(files[i].FullName); //文件路徑

? ? ? ? ? //? print(files[i].Name);? ? //文件名字

? ? ? ? ? ? fileinfo.Add(files[i]);

? ? ? ? }

? ? ? ? return fileinfo;

? ? }



十、將文件夾某一文件復(fù)制到另一個文件夾中

? ? /// <summary>

? ? /// 文件復(fù)制

? ? /// </summary>

? ? /// <param name="targetDir"==要復(fù)制到的文件夾>? </param>

? ? /// <param name="fileName"==要復(fù)制的文件名></param>

? ? public static void CopyDirectory(string targetDir,string fileName)

? ? {

? ? ? ? //起始文件夾

? ? ? ? string fromDir= "C:/Users/Administrator/Desktop/zhang/unity外部配置";

? ? ? ? DirectoryInfo source = new DirectoryInfo(fromDir);

? ? ? ? DirectoryInfo target = new DirectoryInfo(targetDir);

? ? ? ? FileInfo[] files = source.GetFiles();

? ? ? ? File.Copy(fromDir+"/"+ fileName, Path.Combine(targetDir, fileName), true);

? ? }

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,545評論 19 139
  • 前言 最先接觸編程的知識是在大學(xué)里面,大學(xué)里面學(xué)了一些基礎(chǔ)的知識,c語言,java語言,單片機的匯編語言等;大學(xué)畢...
    oceanfive閱讀 3,382評論 0 7
  • 外婆家堂屋門前,左首邊有一棵蔥蘢的石榴樹。 不知道有多少年頭了,粗壯的枝條自下而上形一個不規(guī)則的圓球形。每年春天到...
    風(fēng)雨菩提閱讀 1,225評論 2 4
  • 讀萬卷書不如行萬里路,行萬里路不如閱人無數(shù)。這句話真沒錯! 近一個星期,沒讀什么書,但是,確確實實認識了幾個書友,...
    憶君追夢閱讀 1,473評論 4 5
  • 算了,先不管我這受壓迫的眼睛和脊椎,還是寫寫我心中所想吧! 今天無意看到叢叢在14年給我寫的信,前兩天也無意翻到我...
    小么么噠閱讀 85評論 1 0

友情鏈接更多精彩內(nèi)容