好文档 - 专业文书写作范文服务资料分享网站

第06章 目录与文件管理

天下 分享 时间: 加入收藏 我要投稿 点赞

第6章 目录与文件管理

System.Console.WriteLine(\路径为空引用\ }

catch (ArgumentException) {

System.Console.WriteLine(\路径是一个零长度字符串\ } }

//移动目录

void Move(string sourcePath, string destinationPath) {

try {

System.IO.Directory.Move(sourcePath, destinationPath); System.Console.WriteLine(\移动目录完成\ }

catch (ArgumentNullException) {

System.Console.WriteLine(\路径为空引用\ }

catch (System.Security.SecurityException) {

System.Console.WriteLine(\检测到安全性错误\ }

catch (ArgumentException) {

System.Console.WriteLine(\路径是一个零长度字符串\ }

catch (System.IO.IOException) {

System.Console.WriteLine(\试图将一个目录移到已存在的卷或目标\ } } } }

6.1.2 FolderBrowserDialog控件

VS2005提供了FolderBrowserDialog控件,用于显示用户选择文件夹的对话框。FolderBrowserDialog类属于System.Windows.Forms命名空间,无法继承该类。

调用FolderBrowserDialog类的ShowDialog方法,可以打开对话框,提示用户浏览、创建并最终选择一个文件夹。只能选择文件系统中的文件夹,不能选择虚拟文件夹。只允许用户选择文件夹而非文件。文件夹的浏览通过树控件完成。如果用户在对话框中单击【确定】按钮,则对话框返回结果为DialogResult.OK,否则为DialogResult.Cancel。 表6-3列出了FolderBrowserDialog控件的主要属性。

表6-3 FolderBrowserDialog控件的主要属性

属性名 Description RootFolder 含义 获取或设置对话框中在树视图控件上显示的说明文本 获取或设置从其开始浏览的根文件夹 152

第6章 目录与文件管理

SelectedPath Tag CanRaiseEvents 获取或设置用户选定的路径 获取或设置一个对象,该对象包含控件的数据(从CommonDialog继承) 获取一个指示组件是否可以引发事件的值(从Component继承) 表6-4列出了FolderBrowserDialog控件的主要方法。

表6-4 FolderBrowserDialog控件的主要成员方法

方法 Dispose Equals Reset ShowDialog GetService 说明 释放由 Component 占用的资源(从Component继承。) 确定两个Object实例是否相等(从Object继承。) 将属性重置为其默认值 运行通用对话框(从CommonDialog继承) 返回一个对象,该对象表示由Component或它的Container提供的服务(从Component继承) 通常在创建新的FolderBrowserDialog后,将RootFolder设置为开始浏览的位置。或者,

可将SelectedPath设置为最初选定的RootFolder子文件夹的绝对路径。也可以选择设置Description属性为用户提供附加说明。最后,调用ShowDialog方法将对话框显示给用户。如果该对话框关闭并且ShowDialog显示的对话框为DialogResult.OK,SelectedPath则是一个包含选定文件夹路径的字符串。

FolderBrowserDialog是模式对话框,因此,在对话框被显示时,不能对对话框以外的对象进行任何操作,即阻止应用程序其他部分的运行,直到用户选定了文件夹。

【例6-3】单击Windows窗体按钮,打开FolderBrowserDialog对话框。

(1) 启动VS2005,创建一个名为FolderBrowserDialog的Windows应用程序项目。

(2) 在Form1.cs的【设计】窗口中,将Form1的【Text】属性值改为“FolderBrowserDialog示例”。打开工具箱,如图6-1所示,在“对话框”选项卡中选择FolderBrowserDialog控件,将其拖入到Form1窗体中。

图6-1 工具箱

图6-2 Form1设计窗体

(3) 在Form1窗体中,使用工具箱,展开“所有Windows窗体”选项卡,依次添加标签控件label1、文本框控件textBox1、按钮控件button1,然后修改对应的Text属性,界面效果

153

第6章 目录与文件管理

如图6-2所示。

(4) 双击【打开文件夹】按钮,添加对应的Click事件代码:

private void button1_Click(object sender, EventArgs e) {

DialogResult result = folderBrowserDialog1.ShowDialog(); if (result == DialogResult.OK) {

textBox1.Text = folderBrowserDialog1.SelectedPath; } else {

textBox1.Text = \ } }

(5) 按编译并运行,单击【打开文件夹】按钮,弹出浏览文件夹对话框,如图6-3所示,选择文件夹,单击【确定】按钮,已选择的文件夹就会显示在文本框textBox1中,运行效果如图6-4所示。

图6-3 浏览文件夹 图6-4 例6-3的运行结果

6.2 文件管理

File类和FileInfo类为FileStream对象的创建和文件的创建、复制、移动、删除、打开等提供了支持。使用File类和FileInfo类对文件进行操作时,用户必须具备相应的权限,如读、写等权限,否则将会引发异常。

FileInfo类与File类均能完成对文件的操作,不同点在于FileInfo类必须被实例化,并且每个FileInfo的实例必须对应于系统中一个实际存在的文件。由于所有File类提供的方法都是静态的,所以如果只想执行一个操作,那么使用File方法的效率比使用相应的FileInfo实例方法可能更高。如果打算多次重用某个对象,可考虑使用FileInfo的实例方法,而不是File类的相应静态方法。

154

第6章 目录与文件管理

6.2.1 文件复制、删除与移动

File类和FileInfo类属于System.IO命名空间,提供了文件管理操作,本节仅介绍File类。

1.文件复制

File类的Copy方法用于将现有文件复制到新文件。方法原型为:

public static void Copy (string sourceFileName,string destFileName)

其中参数sourceFileName为要复制的文件;destFileName为目标文件的名称,它不能是一个目录或现有文件。

【例6-4】将文件复制到指定路径。

using System; using System.IO; class Test {

public static void Main() {

string path = @\ string path2 = @\ try {

File.Delete(path2); File.Copy(path, path2);

Console.WriteLine(\复制到{1}\ //再次复制相同的文件,操作失败 File.Copy(path, path2);

Console.WriteLine(\再次复制相同的文件,操作失败\ }

catch (Exception e) {

Console.WriteLine(\不允许进行二次复制\ Console.WriteLine(e.ToString()); } } }

2.文件删除

File类的Delete方法用于删除指定的文件。如果指定的文件不存在,则不引发异常。 方法原型为:

public static void Delete (string path)

参数path为要删除的文件的名称。

【例6-5】删除C:\\MyDir目录下的所有文件。

using System; using System.IO; class FileTest {

public static void Main() {

Console.WriteLine(\确定要删除指定目录下的所有文件?\ Console.WriteLine(\点击'Y' 键继续,任意键取消\

155

第6章 目录与文件管理

int a = Console.Read(); if(a == 'Y' || a == 'y') {

Console.WriteLine(\正在删除文件...\ } else {

Console.WriteLine(\操作被取消\ return; }

DirectoryInfo dir = new DirectoryInfo(@\ foreach (FileInfo f in dir.GetFiles()) {

f.Delete(); } } }

值得一提的是,使用File.Delete方法时,文件删除后在Windows的回收站中找不到,但是使用Norton Unerase Wizard或者其他工具软件却能成功地找到并恢复被删除的文件。由于File.Delete方法并不是彻底地抹去文件的内容,而只是对被删除的文件做出某个标记,因此如果在删除之后没有重新向文件所在的介质中写入新内容,则除了文件名的第一个字符无法恢复外,其它部分都能完整地恢复。

3.文件移动

File类的Move方法用于将指定文件移到新位置,并提供指定新文件名的选项。方法原型为:

public static void Move (string sourceFileName, string destFileName)

参数sourceFileName为要移动的文件名称,destFileName为文件的新路径。

【例6-6】移动一个文件。

using System; using System.IO; class Test {

public static void Main() {

string path = @\ string path2 = @\ try {

if (!File.Exists(path)) {

FileStream fs = File.Create(path); fs.Close(); }

if (File.Exists(path2)) {

File.Delete(path2); }

//移动文件

156

第06章 目录与文件管理

第6章目录与文件管理System.Console.WriteLine(\路径为空引用\}catch(ArgumentException){System.Console.WriteLine(\路径是一个
推荐度:
点击下载文档文档为doc格式
3l7wd5846y5ap1c1l9m9
领取福利

微信扫码领取福利

微信扫码分享