热门IT资讯网

C#文件操作知识点(2)

发表于:2024-11-26 作者:热门IT资讯网编辑
编辑最后更新 2024年11月26日,C#文件操作知识点总结(2)文件和目录操作1.File类和Directory类Flile类的常用方法序号方法说明1Exists(string Path)用于检查指定文件是否存在,该方法返回一个布尔值2

C#文件操作知识点总结(2)

文件和目录操作

1.File类和Directory类

Flile类的常用方法

序号

方法

说明

1

Exists(string Path)

用于检查指定文件是否存在,该方法返回一个布尔值

2

Copy(string SourceFilePath,string DestinationFilePath)

将指定路径的源文件中的内容复制到目标文件中,如果目标文件不存在,则在指定路径中新建一个文件

3

Move(string sourceFileName,string destFileName)

将指定文件移到一个新的路径

4

Delete(string path)

删除指定的文件,如果指定的文件不存在,则不引发异常

Directory类的常用方法

序号

方法

说明

1

Exists(string path)

用于坚持指定的文件夹在磁盘上是否存在

2

Move(string sourceDirName,string DestDirName)

用于将文件或目录及其内容移到新位置

3

Delete(string,bool)

删除指定目录,如果bool值为true,则删除子目录中的所有目录内容

例:

代码

private void button1_Click(object sender, EventArgs e)

{

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

openFileDialog1.FileName = "全部文件";

openFileDialog1.ShowDialog();

this.textBox1.Text = openFileDialog1.FileName;

}

private void button2_Click(object sender, EventArgs e)

{

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

openFileDialog1.FileName = "全部文件";

openFileDialog1.ShowDialog();

this.textBox2.Text = openFileDialog1.FileName;

}

//复制文件

private void button3_Click(object sender, EventArgs e)

{

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

{

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

}

else

{

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

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

}

}

//移动文件

private void button4_Click(object sender, EventArgs e)

{

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

{

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

}

else

{

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

MessageBox.Show("移动成功");

}

}

//删除文件

private void button5_Click(object sender, EventArgs e)

{

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

{

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

}

else

{

File.Delete(this.textBox1.Text);

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

}

}

2.FileInfo类和DirectoryInfo类

FileInfo类的属性和方法

属性

说明

Exists

用于检查指定文件是否存在,返回一个bool值

Extension

获取表示文件扩展命名部分的字符串

Name

获取文件名

FullName

获取目录或文件的完整目录

方法

说明

CopyTo(string)

将现有文件复制到新文件,不允许覆盖现有文件

Delete()

永久删除文件

MoveTo(string)

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

例:

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

//返回当前目录的子目录

DirectoryInfo[] subDir = di.GetDirectories();

//返回当前目录的文件列表

FileInfo[] fi = di.GetFiles();

序列化与反序列化

步骤:

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

2.在SavingInfo、Remind等类的头部加一个标记[Serializable],例如:

[Serializable]

Public class SavingInfo

{

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

}

3.编写Save()方法和Load()方法,例如:

//序列化方法

public void Save()

{

//定义文件流

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

//二进制方式

BinaryFormatter bf = new BinaryFormatter();

//序列化存储对象

bf.Serialize(this.listArrays);

//关闭文件流

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()方法将存储介质的数据文件流转换为object类型。

不想序列化的属性在其头部加上[NonSerialized]标记即可。

0