C#操作文件和文件夾的類介紹


下面對處理文件常用的類做了一些介紹,還算詳細吧,主要包括:DirectoryInfo,Directory,Path,FileInfo,File,FileStream

        private void button2_Click(object sender, EventArgs e)
        {           
            TimeSpan ts = new TimeSpan();
            DateTime dtStart = DateTime.Now;
            string currFile = textBox1.Text;
            string Json = File.ReadAllText(currFile).TrimStart();//將文件內容轉換成字符串類型輸出
            int index = Json.IndexOf('[');//判斷某個字符在字符串里面的第幾個位置
            #region DirectoryInfo 操作文件夾
            DirectoryInfo d = new DirectoryInfo(@"D:\ATS\Application\VS2017\Source Code"); d.Create();    \\創建目錄:
            d.Delete();//刪除目錄:
            d.MoveTo(@"D:\ATS\Application\VS2017\Source Code");//移動目錄:
            bool b = d.Exists; //目錄是否存在:
            string fullname=d.FullName;//獲得目錄全名:
            FileInfo[] f = d.GetFiles();//獲得子文件!對象信息!: 
            d.GetFiles("*.exe");//返回的是文件對象數組,內容更詳細,只獲取exe的文件
            DirectoryInfo[] dr = d.GetDirectories(); //獲得子目錄:
            #endregion DirectoryInfo 操作文件夾
            #region Directory操作文件夾
            Directory.CreateDirectory(@"D:\ATS\Application\VS2017\Source Code\Jay\oda1019\test\TEST");//創建文件夾
            Directory.Delete(@"D:\ATS\Application\VS2017\Source Code\Jay\oda1019\test\TEST", true);//刪除TEST目錄,true將刪除整個目錄,即使該目錄下有文件或子目錄;若為false,則僅當目錄為空時才可刪除。
            File.Move(@"c:\tempuploads\NewDirectory", @"c:\tempuploads\BackUp");//移動文件夾

            //下面的代碼讀出c:\tempuploads\目錄下的所有子目錄,並將其存儲到字符串數組中。
            string[] Directorys;
            Directorys = Directory.GetDirectories(@"c:\tempuploads");

            //獲取當前目錄下的所有文件方法,下面的代碼讀出c:\tempuploads\目錄下的所有文件,並將其存儲到字符串數組中
            string[] Files;
            Files = Directory.GetFiles(@"c:\tempuploads");

            Directory.Exists(@"c:\tempuploads");    //判斷目錄是否存在
            Directory.GetDirectoryRoot(@"c:\tempuploads");//獲取根目錄

            Directory.GetParent(@"c:\tempuploads"); //獲取上一級目錄
            #endregion
            #region Path處理文件
            string file_name = Path.GetFileName(currFile);//從一個地址中解析出文件名
            Path.GetFileNameWithoutExtension(currFile);//從路徑字符串中得到文件名(不帶擴展名)
            Path.GetExtension(currFile);//從文件路徑字符串中得到文件的擴展名
            Path.GetDirectoryName(currFile);//得到文件夾的路徑
            Path.GetFullPath(currFile);//得到包括文件名和擴展名的全路徑名。
            //合並路徑
            string Str1 = @"C:\Users\Administrator\";
            string Str2 = @"Desktop\測試文件.txt";
            Path.Combine(Str1, Str2);
            #endregion
            #region FileInfo處理文件
            FileInfo fi = new FileInfo(currFile);
            DateTime dt = fi.CreationTime;  //獲取或設置當前文件或目錄的創建時間。 
            string directory = fi.DirectoryName;    //獲取表示目錄的完整路徑的字符串
            bool IfExists = fi.Exists;  //獲取指示文件是否存在
            string Extension = fi.Extension;    //獲取表示文件擴展名部分的字符串
            string fullName = fi.FullName;  //獲取目錄或文件的完整目錄
            string Name = fi.Name;  //獲取文件名
            fi.CopyTo(@"D:\ATS\Application\VS2017\Source Code\Jay\oda1019\test\test.JSON", true);//將文件copy到指定路徑,並且覆蓋之前的文件
            fi.MoveTo(@"D:\ATS\Application\VS2017\Source Code\Jay\oda1019\test\test1.JSON");//將文件move到指定路徑,並且覆蓋之前的文件
            FileStream fs=fi.Create();  //創建一個文件
            fi.Delete();    //刪除一個文件
            #endregion                            ////////////////////////////////////////////////////////////////////////////////
            #region File處理文件
            File.Create(@"D:\Test\Debug1\測試.txt");//創建文件
            File.Copy(@"c:\tempuploads\newFile.txt", @"c:\tempuploads\BackUp.txt", true);//copy文件        
            File.Delete(@"c:\tempuploads\newFile.txt");
            File.Move(@"C:\Users\scottzhang\NEW.txt", @"D:\ATS\Application\VS2017\Source Code\Jay\oda1019\test\NEW.txt");
            File.Exists(@"c:\tempuploads\newFile.txt");//判斷文件是否存在
            #endregion
            #region FileStream讀寫文件,代碼會報錯
            //1.創建一個    中國.txt
            string txt = "中國是世界上人口第一大國。中國是世界上最幸福的國家之一。";
            //一、創建一個文件流
            FileStream fs1 = new FileStream(@"D:\ATS\Application\VS2017\Source Code\Jay\oda1019\test\NEW.txt", FileMode.Create, FileAccess.Write);
            byte[] buffer = Encoding.UTF8.GetBytes(txt);
            //二、讀文件或者寫文件
            //參數1:表示要把哪個byte[]數組中的內容寫入到文件
            //參數2:表示要從該byte[]數組的第幾個下標開始寫入,一般都是0
            //參數3:要寫入的字節的個數。
            fs.Write(buffer, 0, buffer.Length);
            ////三、關閉文件流
            ////清空緩沖區
            //fs.Flush();
            //fs.Close();
            //四、釋放相關資源
            fs.Dispose();//自動調用close和flush方法
            Console.WriteLine("ok");
            Console.ReadKey();
            //1.創建一個    中國.txt
            string txt1 = "中國是世界上人口第一大國。中國是世界上最幸福的國家之一。中國是四大文明古國之一。中國有個楊中科。";
            //一、創建一個文件流
            //當把一個對象放到using()中的時候,當超出using的作用於范圍后,會自動調用該對象的Dispose()f方法。
            using (FileStream fs2 = new FileStream(@"c:\中國.txt", FileMode.Create, FileAccess.Write))
            {
                byte[] buffer1 = Encoding.UTF8.GetBytes(txt);
                //二、讀文件或者寫文件
                //參數1:表示要把哪個byte[]數組中的內容寫入到文件
                //參數2:表示要從該byte[]數組的第幾個下標開始寫入,一般都是0
                //參數3:要寫入的字節的個數。
                fs.Write(buffer, 0, buffer.Length);
            }
            Console.WriteLine("ok");
            Console.ReadKey();
            #endregion

        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM