前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >3-1 Fileinfo类的常用方法

3-1 Fileinfo类的常用方法

作者头像
py3study
发布2020-01-06 20:55:10
7250
发布2020-01-06 20:55:10
举报
文章被收录于专栏:python3python3

1. 案例学习:了解FileInfo类的一些主要属性

下面的示例演示了 FileInfo类的一些主要属性。

using System; using System.IO; class Test {     public static void Main() {         string fileName = "C:\\autoexec.bat";             FileInfo fileInfo = new FileInfo(fileName);             if (!fileInfo.Exists)             {                 return;             }             Console.WriteLine("{0} has a directoryName of {1}",fileName,fileInfo.DirectoryName);             /* 下面是代码的处理结果,              * 实际的结果因机器不同:              *              * C:\autoexec.bat has a directoryName of C:\              */     } }

2.案例学习:实现文件的复制

本案例将解决,同磁盘环境下文件复制的问题。请尝试把C:\WinNT\Win.INI文件拷贝到C:\下的代码,怎么写呢?

u实验步骤(1):

向一个Form窗体上拖拽三个Button控件,三个控件的text属性分别设置为“复制文本文件”、“创建文本文件”、 “删除文本文件”。如图3-3所示:

图3-3 文件操作界面图

u实验步骤(2):

双击“复制文本文件”、“创建文本文件”、“删除文本文件”,在click事件处理方法里分别添加代码如下:

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; namespace FileOptionApplication {     public partial class Form1 : Form     {         public Form1()         {             InitializeComponent();         }         /// <summary>         /// 复制文本文件         /// </summary>         private void button1_Click(object sender, EventArgs e)         {             string somefile = @"C:\Documents and Settings\Administrator\My Documents\SQL Server2000安装故障.txt";             string target = @"c:\2.txt";             if (!File.Exists(somefile))             {                 MessageBox.Show("文件不存在!");             }             else             {                 if (File.Exists(target))                 {                     File.Delete(target);                 }                 File.Copy(somefile, target);                 MessageBox.Show("文件复制成功!");             }         }          /// <summary>         /// 创建文本文件         /// </summary>         private void button2_Click(object sender, EventArgs e)         {             string target = @"c:\2.txt";             if (File.Exists(target))             {                 File.Delete(target);             }             File.CreateText(target);         }         /// <summary>         /// 删除文本文件         /// </summary>         private void button3_Click(object sender, EventArgs e)         {             string target = @"c:\2.txt";             if (File.Exists(target))             {                 File.Delete(target);                 MessageBox.Show("文件删除成功!");             }         }     } }

问题讨论:

刚才的实验我们是通过File类实现并完成任务的,那么此次我们通过更换FileInfo类执行同样的复制动作如何实现呢?请将button1_Click的代码替换为下列代码试试:

private void button1_Click(object sender, EventArgs e)         {             string path = @"C:\WINDOWS\IE4 Error Log.txt";             string target = @"c:\1.txt";             FileInfo myfile = new FileInfo(path);             if (!myfile.Exists)             {                 MessageBox.Show("对不起,未发现路径文件!");             }             else             {                 myfile.CopyTo(target);                 MessageBox.Show("复制成功!");             }        }

3.案例学习:获取文件基本信息

本案例将解决,如何显示文件的基本信息问题。

u实验步骤(1):

向一个Form窗体上拖拽三个Lable控件和一个Button控件,Button控件的text属性设置为“获取文件信息”。如图3-4所示:

图3-4 获取文件信息界面图

u实验步骤(2):

双击“获取文件信息”,在click事件处理方法里分别添加代码如下:

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO;   namespace FileOptionApplication {     public partial class Form2 : Form     {         public Form2()         {             InitializeComponent();         }          /// <summary>         /// 获取文件信息单击事件         /// </summary>         private void button1_Click(object sender, EventArgs e)         {             string somefile = @"C:\Documents and Settings\Administrator\My Documents\SQL Server2000安装故障.txt";             FileInfo myfile = new FileInfo(somefile);             if (myfile.Exists)             {                 MessageBox.Show("文件已经存在");                 label1.Text = "文件创建时间:" + myfile.CreationTime.ToString();                 label2.Text = "文件夹:" + myfile.Directory.ToString();                 label3.Text = "文件夹名称:" + myfile.DirectoryName.ToString() + ",文件扩展名:" + myfile.Extension.ToString();             }             else             {                 MessageBox.Show("文件并不存在");             }         }     } }

问题讨论:

FileInfo类和File类都可以实现上述操作,它们的方法也都非常相似,那么它们到底有什么区别呢?

nFileInfo类和File类的比较

n两者都提供对文件类似的操作。

nFile为静态类,直接使用;FileInfo需要实例化后才能使用 。

n从性能上考虑,如果你要多次操作文件,不管是针对相同的,还是不同的,请使用FileInfo,说白了,单打独斗File最棒,群殴则首推FileInfo。

n每次通过File类调用某个方法时,都要占用一定的CPU,而FileInfo类只在创建FileInfo对象时执行一次安全检查。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 案例学习:了解FileInfo类的一些主要属性
  • 2.案例学习:实现文件的复制
  • 3.案例学习:获取文件基本信息
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档