溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C#文件操作知識(shí)點(diǎn)(2)

發(fā)布時(shí)間:2020-04-14 20:29:01 來(lái)源:網(wǎng)絡(luò) 閱讀:380 作者:cashs2010 欄目:編程語(yǔ)言

C#文件操作知識(shí)點(diǎn)總結(jié)(2)

文件和目錄操作

1.File類(lèi)和Directory類(lèi)

Flile類(lèi)的常用方法

序號(hào)

方法

說(shuō)明

1

Exists(string Path)

用于檢查指定文件是否存在,該方法返回一個(gè)布爾值

2

Copy(string SourceFilePath,string DestinationFilePath)

將指定路徑的源文件中的內(nèi)容復(fù)制到目標(biāo)文件中,如果目標(biāo)文件不存在,則在指定路徑中新建一個(gè)文件

3

Move(string sourceFileName,string destFileName)

將指定文件移到一個(gè)新的路徑

4

Delete(string path)

刪除指定的文件,如果指定的文件不存在,則不引發(fā)異常

 

Directory類(lèi)的常用方法

序號(hào)

方法

說(shuō)明

1

Exists(string path)

用于堅(jiān)持指定的文件夾在磁盤(pán)上是否存在

2

Move(string sourceDirName,string DestDirName)

用于將文件或目錄及其內(nèi)容移到新位置

3

Delete(string,bool)

刪除指定目錄,如果bool值為true,則刪除子目錄中的所有目錄內(nèi)容

 

 

例:

 

代碼

 private void button1_Click(object senderEventArgs e)

        {

            openFileDialog1.Filter = "全部文件 *.*|*.*";

            openFileDialog1.FileName = "全部文件";

            openFileDialog1.ShowDialog();

            this.textBox1.Text = openFileDialog1.FileName;

        }

 

        private void button2_Click(object senderEventArgs e)

        {

            openFileDialog1.Filter = "全部文件 *.*|*.*";

            openFileDialog1.FileName = "全部文件";

            openFileDialog1.ShowDialog();

            this.textBox2.Text = openFileDialog1.FileName;

        }

 

        //復(fù)制文件

        private void button3_Click(object senderEventArgs e)

        {

            if (!File.Exists(this.textBox1.Text))

            {

                MessageBox.Show("文件不存在");

            }

            else

            {

                File.Copy(this.textBox1.Textthis.textBox2.Text);

                MessageBox.Show("拷貝成功");

            }

        }

 

        //移動(dòng)文件

        private void button4_Click(object senderEventArgs e)

        {

            if (!File.Exists(this.textBox1.Text))

            {

                MessageBox.Show("文件不存在");

            }

            else

            {

                File.Move(this.textBox1.Textthis.textBox2.Text);

                MessageBox.Show("移動(dòng)成功");

            }

        }

        //刪除文件

        private void button5_Click(object senderEventArgs e)

        {

            if (!File.Exists(this.textBox1.Text))

            {

                MessageBox.Show("文件不存在");

            }

            else

            {

                File.Delete(this.textBox1.Text);

                MessageBox.Show("刪除成功");

            }

        }

2.FileInfo類(lèi)和DirectoryInfo類(lèi)

FileInfo類(lèi)的屬性和方法

屬性

說(shuō)明

Exists

用于檢查指定文件是否存在,返回一個(gè)bool

Extension

獲取表示文件擴(kuò)展命名部分的字符串

Name

獲取文件名

FullName

獲取目錄或文件的完整目錄

方法

說(shuō)明

CopyTo(string)

將現(xiàn)有文件復(fù)制到新文件,不允許覆蓋現(xiàn)有文件

Delete()

永久刪除文件

MoveTo(string)

將指定文件移到新位置(string)

 

例:

            DirectoryInfo di = new DirectoryInfo("D:\testDir");

            //返回當(dāng)前目錄的子目錄

            DirectoryInfo[] subDir = di.GetDirectories();

            //返回當(dāng)前目錄的文件列表

            FileInfo[] fi = di.GetFiles();

 

序列化與反序列化

步驟:

1.引入命名空間:using System.Runtime.Serialization.Formatters.Binary;

2.SavingInfo、Remind等類(lèi)的頭部加一個(gè)標(biāo)記[Serializable],例如:

[Serializable]

Public class SavingInfo

{

//..............

}

3.編寫(xiě)Save()方法和Load()方法,例如:

//序列化方法

        public void Save()

        { 

            //定義文件流

            FileStream fs = new FileStream(@"files\save.bin"FileMode.Create);

            //二進(jìn)制方式

            BinaryFormatter bf = new BinaryFormatter();

            //序列化存儲(chǔ)對(duì)象

            bf.Serialize(this.listArrays);

            //關(guān)閉文件流

            fs.Close();

        }

 

        //反序列化方法

        public void Load()

        { 

            //省略判斷文件是否存在

            FileStream fs = new FileStream(@"files\save.bin",FileMode.Open);

            BinaryFormatter bf=new BinaryFormatter();

            //反序列化

            this.lisArrays = (SavingInfo)bf.Deserialize(fs);

            fs.Close();

        }

注:Deserialize()方法將存儲(chǔ)介質(zhì)的數(shù)據(jù)文件流轉(zhuǎn)換為object類(lèi)型。

不想序列化的屬性在其頭部加上[NonSerialized]標(biāo)記即可。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI