赞
踩
目录
1. Directory类的CreateDirectory()方法
判断文件夹是否存在时,可以使用Directory类的Exists()方法或者DirectoryInfo类的Exists属性来实现。
Exists()方法用于确定给定路径是否引用磁盘上的现有目录,语法如下。
- public static bool Exists (string path)
- ☑ path:要测试的路径。
- ☑ 返回值:如果path引用现有目录,则为true;否则为false。允许path参数指定相对或绝对路径信息。
相对路径信息被解释为相对于当前的工作目录。
- //使用Directory类的Exists()方法判断C盘根目录下是否存在Test文件夹。
- Directory.Exists("C:\\Test ");
获取指示目录是否存在的值,语法如下。
- public override bool Exists{get;}
- 属性值:如果目录存在,则为true;否则为false。
- //调用DirectoryInfo类中的Exists属性判断C盘根目录下是否存在Test文件夹
- Directorylnfo dinfo =new Directorylnfo ("C:\\Test");
- if (dinfo.Exists)
- {}
创建文件夹可以使用Directory类的CreateDirectory()方法或者DirectoryInfo类的Create()方法来实现。
CreateDirectory()方法为可重载方法,它有以下两种重载形式。
- public static DirectoryInfo CreateDirectory (string path)
- public static DirectoryInfo CreateDirectory (string path,DirectorySecurity directorySecurity)
- ☑ path:要创建的目录路径。
- ☑ directorySecurity:要应用于此目录的访问控制。
- ☑ 返回值:第一种重载形式的返回值为由path指定的DirectoryInfo;第二种重载形式的返回值为新创建的目录的DirectoryInfo对象。
当path参数中的目录已经存在或者path的某些部分无效时,将发生异常。path参数指定目录路径,而不是文件路径。
- //调用Directory类的CreateDirectory()方法在C盘根目录下创建一个Test文件夹
- Directory.CreateDirectory ("C:\\Test ");
Create()方法为可重载方法,它有以下两种重载形式。
- public void Create ()
- public void Create (DirectorySecurity directorySecurity)
directorySecurity:主要应用于此目录的访问控制。
- //调用DirectoryInfo类的Create()方法在C盘根目录下创建一个Test文件夹
- Directorylnfo dinfo =new DirectoryInfo ("C:\\Test ");
- dinfo.Create();
移动文件夹时,可以使用Directory类的Move()方法或者DirectoryInfo类的MoveTo()方法来实现。
Move()方法用于将文件或目录及其内容移到新位置,语法如下。
- public static void Move (string sourceDirName,string destDirName)
- ☑ sourceDirName:要移动的文件或目录的路径。
- ☑ destDirName:指向sourceDirName的新位置的路径。
- //调用Directory类的Move()方法将C盘根目录下的Test文件夹移动到C盘根目录下的“新建文件夹”文件夹中
- Directory.Move("C:\\Test","C:\\新建文件夹NTest");
使用Move()方法和MoveTo()方法移动文件夹时需要统一磁盘根目录,例如,C盘下的文件夹只能移动到C盘中的某个文件夹下。
MoveTo()方法用于将DirectoryInfo对象及其内容移动到新路径,语法如下。
- public void MoveTo (string destDirName)
- destDirName:要将此目录移动到的目标位置的名称和路径。目标不能是另一个具有相同名称的磁盘卷或目录,它可以是要将此目录作为子目录添加到其中的一个现有目录。
- //调用DirectoryInfo类的MoveTo()方法将C盘根目录下的Test文件夹
- //移动到C盘根目录下的“新建文件夹”文件夹中
- Directorylnfo dinfo =new Directorylnfo ("C:\\Test ");
- dinfo.MoveTo("C:\\新建文件夹\\Test");
删除文件夹可以使用Directory类的Delete()方法或者DirectoryInfo类的Delete()方法来实现。
Delete()方法为可重载方法,它有以下两种重载形式。
- public static void Delete(string path)
- public static void Delete(string path,bool recursive)
- ☑ path:要移除的空目录/目录的名称。
- ☑ recursive:若要移除path中的目录、子目录和文件,则为true;否则为false。
- //调用Directory类的Delete()方法删除C盘根目录下的Test文件夹
- Directory.Delete("C:\\Test");
Delete()方法是指永久删除文件,语法如下。
- public override void Delete()
- public void Delete(bool recursive)
- recursive:若为true,则删除此目录、其子目录以及所有文件;否则为false。
第一种重载形式,如果DirectoryInfo为空,则删除它;第二种重载形式,删除DirectoryInfo对象,并指定是否要删除子目录和文件。
- //调用DirectoryInfo类的Delete()方法删除C盘根目录下的Test文件夹
- Directorylnfo dinfo =new Directorylnfo ("C:\\Test");
- dinfo.Delete()
GetDirectories()方法用来返回当前目录的子目录。该方法为可重载方法,它有以下3种重载形式。
- public DirectoryInfo[]GetDirectories()
- public Directorylnfo[]GetDirectories(string searchPattern)
- public Directorylnfo[]GetDirectories(string searchPattern,SearchOption searchOption)
- ☑ searchPattern:搜索字符串,如用于搜索所有以单词System开头的目录的“System*”。
- ☑ searchOption:SearchOption枚举的一个值,指定搜索操作是应仅包含当前目录还是应包含所有子目录。
- ☑ 返回值:第一种重载形式的返回值为DirectoryInfo对象的数组;第二种和第三种重载形式的返回值为与searchPattern匹配的DirectoryInfo类型的数组。
GetFiles()方法用来返回当前目录的文件列表。该方法为可重载方法,它有以下3种重载形式。
- public Filelnfo[]GetFiles()
- public Filelnfo[]GetFiles(string searchPattern)
- public Filelnfo[]GetFiles(string searchPattern,SearchOption searchOption)
- ☑ searchPattern:搜索字符串(如“*.txt”)。
- ☑ searchOption:SearchOption枚举的一个值,指定搜索操作是应仅包含当前目录还是应包含所有子目录。
- ☑ 返回值:FileInfo类型数组。
GetFileSystemInfos()方法用来返回表示某个目录中所有文件和子目录的FileSystemInfo类型数组。该方法为可重载方法,它有以下两种重载形式。
- public FileSystemInfo[]GetFileSystemInfos()
- public FileSystemInfo[]GetFileSystemInfos(string searchPattern)
- ☑ searchPattern:搜索字符串。
- ☑ 返回值:第一种重载形式的返回值为FileSystemInfo项的数组;第二种重载形式的返回值为与搜索条件匹配的FileSystemInfo对象的数组。
- namespace _06
- {
- public partial class Form1 : Form
- {
- private readonly TextBox? textBox1;
- private readonly Label? label1;
- private readonly Button? button1;
- private readonly FolderBrowserDialog? folderBrowserDialog1;
- private readonly ListView? listView1;
- private readonly ColumnHeader? columnHeader1;
- private readonly ColumnHeader? columnHeader2;
- private readonly ColumnHeader? columnHeader3;
- private readonly ColumnHeader? columnHeader4;
-
- public Form1()
- {
- InitializeComponent();
- //文本框控件
- textBox1 = new TextBox();
- {
- textBox1.Location = new Point(97, 18);
- textBox1.Name = "textBox1";
- textBox1.Size = new Size(159, 21);
- textBox1.Text = "";
- }
- //标签控件
- label1 = new Label();
- {
- label1.AutoSize = true;
- label1.Location = new Point(16, 21);
- label1.Text = "选择文件夹:";
- }
- //按钮控件及事件
- button1 = new Button();
- {
- button1.Location = new Point(268, 16);
- button1.Name = "button1";
- button1.Size = new Size(60, 23);
- button1.Text = "浏览";
- button1.UseVisualStyleBackColor = true;
- button1.Click += new EventHandler(Button1_Click);
- }
- //文件夹浏览控件
- folderBrowserDialog1 = new FolderBrowserDialog();
- {
-
- }
- //列标题控件
- columnHeader1 = new ColumnHeader();
- {
- columnHeader1.Text = "文件名";
- columnHeader1.Width = 200;
- }
- columnHeader2 = new ColumnHeader();
- {
- columnHeader2.Text = "路径";
- columnHeader2.Width =500;
- }
- columnHeader3 = new ColumnHeader();
- {
- columnHeader3.Text = "大小";
- columnHeader3.Width = 40;
- }
- columnHeader4 = new ColumnHeader();
- {
- columnHeader4.Text = "创建日期";
- columnHeader4.Width = 60;
- }
- // listView1控件及设置
- listView1 = new ListView();
- {
- listView1.Columns.AddRange(
- [
- columnHeader1,
- columnHeader2,
- columnHeader3,
- columnHeader4
- ]);
- listView1.HideSelection = false;
- listView1.Location = new Point(12, 45);
- listView1.Name = "listView1";
- listView1.Size = new Size(800, 100);
- listView1.TabIndex = 3;
- listView1.UseCompatibleStateImageBehavior = false;
- listView1.View = View.Details;
- }
- //Form1,要放在最末尾,否则空白
- ClientSize = new Size(820, 160);
- Name = "Form1";
- Text = "Form1";
- Controls.Add(textBox1);
- Controls.Add(label1);
- Controls.Add(button1);
- Controls.Add(listView1);
- PerformLayout();
- }
-
- private void Button1_Click(object? sender, EventArgs e)
- {
- listView1?.Items.Clear();
- if (folderBrowserDialog1?.ShowDialog() == DialogResult.OK)
- {
- textBox1!.Text = folderBrowserDialog1.SelectedPath;
- DirectoryInfo dinfo = new(textBox1.Text); //实例化DirectoryInfo对象
- FileSystemInfo[] fsinfos = dinfo.GetFileSystemInfos(); //获取指定目录下的所有子目录及文件类型
- foreach (FileSystemInfo fsinfo in fsinfos)
- {
- if (fsinfo is DirectoryInfo) //判断是否文件夹
- {
- DirectoryInfo directoryInfo = new(fsinfo.FullName); //使用获取的文件夹名称实例化DirectoryInfo对象
- DirectoryInfo dirinfo = directoryInfo;
- listView1?.Items.Add(dirinfo.Name); //为ListView控件添加文件夹信息
- listView1?.Items[listView1.Items.Count - 1].SubItems
- .Add(dirinfo.FullName);
- listView1?.Items[listView1.Items.Count - 1].SubItems.Add("");
- listView1?.Items[listView1.Items.Count - 1].SubItems
- .Add(dirinfo.CreationTime.ToShortDateString());
- }
- else
- {
- FileInfo finfo = new(fsinfo.FullName); //使用获取的文件名称实例化FileInfo对象
- listView1?.Items.Add(finfo.Name); //为ListView控件添加文件信息
- listView1?.Items[listView1.Items.Count - 1].SubItems.Add(finfo.FullName);
- listView1?.Items[listView1.Items.Count - 1].SubItems.Add(finfo.Length.ToString());
- listView1?.Items[listView1.Items.Count - 1].SubItems
- .Add(finfo.CreationTime.ToShortDateString());
- }
- }
- }
- }
- }
- }

采用不设计Form1.cs[设计]的设计方法。
浏览并选择一个文件夹,确定后就遍历文件夹
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。