资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

C#文件操作知识点(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.SavingInfoRemind等类的头部加一个标记[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]标记即可。


当前文章:C#文件操作知识点(2)
分享URL:http://cdkjz.cn/article/ggiips.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220