C# 文件操作之创建文件夹

简介:

本文章主要是讲述C#中文件操作的基础知识,如何创建文件夹、创建文件、介绍Directory类\DirectoryInfo类和使用FolderBrowserDialog组件(文件夹对话框)。文章属于基础知识,参考了书籍刘丽霞《C#范例开发大全》,希望对大家有用!

一.界面设计

创建的C# Windows窗体应用程序,界面设计如下添加Lable控件、TextBox控件(其中textBox1可设置属性为只读)、Button控件和FolderBrowserDialog组件(文件夹对话框),点击"浏览按钮"时会弹出"浏览文件夹"的对话框供选择要创建文件夹的路径。同时输入创建个数点击"创建文件夹"按钮可以实现批量创建文件夹功能。

 

二.源代码

1.添加命名空间

在文件操作中,Directory类和DirectoryInfo类的命名空间都是system.IO:

using System.IO;

2.源代码

点击"浏览"按钮和“创建文件夹”按钮分别实现相应的Click事件,同时添加一个变量string path\filename记录创建文件夹的路径和文件夹名,代码如下:

//定义变量
string path = "";                                        //文件路径
string filename = "";                                    //文件夹名
//点击"浏览"按钮
private void button3_Click(object sender, EventArgs e)
{
    //使用文件对话框查找文件夹创建的路径
    if(folderBrowserDialog1.ShowDialog() == DialogResult.OK)   
    {
        path = this.folderBrowserDialog1.SelectedPath;  //获取用户选中路径
        textBox1.Text = path;                           //显示路径
    }
}
//点击"创建文件夹"按钮
private void button1_Click(object sender, EventArgs e)
{
    if (textBox2.Text == "")  //创建个数不为0
    {
        MessageBox.Show("请输入创建文件夹的个数!");
        return;
    }
    //Convert将一个基本数据类型转换为另一个数据类型
    int num = Convert.ToInt32(textBox2.Text);             //创建文件夹个数
    //循环创建文件夹
    for (int i = 0; i < num; i++)
    {
        filename = path + "\\新建文件夹" + i.ToString();    //组合路径
        Directory.CreateDirectory(filename);              //创建文件夹
    }
    MessageBox.Show("文件夹创建成功!");
}

3.运行结果

选择路径后,点击"创建"按钮就会在相应目录下创建文件夹,如果想创建txt文件可以用File.Create(string path)创建;建议在程序中尽量使用try..catch进行异常信息处理。上面核心知识有两点:(后面将详细介绍)
                      (1).使用FolderBrowserDialog组件获取创建文件夹路径;
                      (2).使用Directory类提供的静态方法CreateDirectory()实现创建文件夹.

三.FolderBrowserDialog组件

在winform程序中我们经常需要使用FolderBrowserDialog组件打开相应路径,该控件的运行结果如下图所示:

它的实现代码基本如下:

//FolderBrowserDialog:文件对话框获取文件夹创建的路径
//方法一:调用folderBrowserDialog1
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)   //DialogResult获取对话框结果"确定"
{
    path = this.folderBrowserDialog1.SelectedPath;         //获取用户选中路径
    textBox1.Text = path;                                  //显示路径
}
//方法二:动态实例FolderBrowserDialog控件
FolderBrowserDialog folder = new FolderBrowserDialog();
if (folder.ShowDialog() == DialogResult.OK)
{
    path = folder.SelectedPath;                            //获取用户选中路径
    textBox1.Text = path;                                  //显示路径
}

它提供一种方法提示用户浏览、创建并最终选择一个文件夹,但不可以选择文件;通过浏览树型结构呈现。其中我们使用的SelectedPath属性是获取或设置用户选定的路径(详解MSDN)。同时与它类似的控件还有保存文件位置对话框saveFileDialog控件和打开对话框OpenFileDialog控件:

//实例
SaveFileDialog folder = new SaveFileDialog();
folder.Filter = "网页文件(*.htm)|*.htm|ASP.NET文件(*.aspx)|*.aspx";    
//打开保存对话框 点击"确定"按钮执行  
if (folder.ShowDialog() == DialogResult.OK)
{
    //读取数据、写入数据操作 如:
    stream.ReadToEnd();
    stream.Write();
    stream.Close();
}

四.Directory类和DirectoryInfo类

Directory类用于创建、移动和枚举目录和子目录的实例方法。无法继承此类,其命名空间为System.IO;上面代码中主要采用Directory提供的静态方法CreateDirectory()创建文件夹;而Directoryinfo类是实例类,这两个类包含的大部分方法都是相同的,典型操作有创建、复制、移动、重命名和删除。如果打算多次重用某个对象应考虑使用DirectoryInfo实例方法,而不是Directory静态方法,因为并不总需要安全检查。下面介绍一些简单的方法:

//Directory
Directory.Exists("e:\\file");                //检查文件是否存在
Directory.CreateDirectory("e:\\file");       //创建文件夹
Directory.Delete("e:\\file");                //删除文件夹
Directory.GetCreationTime("e:\\nba");        //获取目录的创建时间和日期(dateTime型->ToString)
Directory.GetCurrentDirectory();             //获取应用程序当前目录(返回值string)
Directory.GetFiles("e:\\");                  //获取目录中文件名称
string[] files = Directory.GetFiles("e:\\");
Directory.GetDirectoryRoot("e:\\file");       //获取路径根目录
Directory.Move("E:\\","F:\\");                //移动文件夹(E移动到F)
Directory.SetCreationTime(string,DateTime);   //设置文件目录创建时间日期
//DirectoryInfo
DirectoryInfo dir = new DirectoryInfo(path);  //实例对象
dir.GetFileSystemInfos();                     //获取目录中所有文件盒子目录
dir.GetFiles();                               //返回当前目录文件列表
dir.MoveTo(string);                           //移动文件或重命名

参考 http://msdn.microsoft.com/zh-cn/library/System.IO.DirectoryInfo(v=vs.80).aspx

五.总结

文章主要介绍基于Directory类和DirectoryInfo类的文件夹、文件操作的基础知识,其中通过例子介绍了FolderBrowserDialog组件等知识,文章最后感谢MSDN中的一些知识和《C#范例开发大全》书籍及作者。同时写该文章主要原是对自己学习该知识的一个总结与记录,可能内容很简单也不是很实用,但还是希望文章对大家有所帮助。如果有错误或不足之处,见谅!

(By:Eastmount 2013-9-21 下午4点 http://blog.csdn.net/eastmount/

目录
相关文章
|
1月前
|
C#
C# 文件操作(全部) 追加、拷贝、删除、移动文件、创建目录
C# 文件操作(全部) 追加、拷贝、删除、移动文件、创建目录
22 0
|
6月前
|
C#
C#程序Debug文件夹可以运行,无法调试
C#程序Debug文件夹可以运行,无法调试
|
2月前
|
C#
C# Winform 选择文件夹和选择文件
C# Winform 选择文件夹和选择文件
44 0
|
4月前
|
存储 C#
【Untiy 3D】C#中文件夹与读写文件操作详解(附测试代码 超详细)
【Untiy 3D】C#中文件夹与读写文件操作详解(附测试代码 超详细)
37 0
|
6月前
|
C#
C# 统计指定文件夹下的文件
C# 统计指定文件夹下的文件 需要:统计某一指定文件夹下的文件数目和文件的全路径 示例代码: /// <summary> /// 统计文件夹内的文件 /// </summary> /// <param name="path">指定的文件夹路径</param> /// <returns></returns> ...
28 0
|
7月前
|
C#
使用C#进行文件操作
在许多应用程序中,文件操作是常见的任务之一。无论是读取文件内容、写入数据,还是创建、移动和删除文件,C# 编程语言都提供了强大且易于使用的文件操作功能。本篇博客将介绍如何使用C#来进行基本的文件操作。
35 0
|
9月前
|
C#
C#遍历文件夹
C#遍历文件夹
89 0
C# 获取本机系统特殊文件夹路径
C# 获取本机系统特殊文件夹路径
C# 获取本机系统特殊文件夹路径
|
C#
如何在 C# 项目中链接一个文件夹下的所有文件
在 C# 项目中通过链接方式引入文件可以让我们在项目中使用这些文件中的代码。常见的比如链接 AssemblyInfo.cs 文件,这样我们就可以在项目中使用这个文件中的版本号等信息。但是如果我们想要链接一个文件夹下的所有文件,该怎么做呢?今天我们就来看看如何在 C# 项目中链接一个文件夹下的所有文件。
102 0
如何在 C# 项目中链接一个文件夹下的所有文件
|
开发框架 程序员 C#
【C#】winform实现锁定和解锁文件夹功能
有个朋友找我,问我有没有一个简单的小工具,能够直接对文件夹进行加密或者加锁,带着这个朋友的需求就简单的实现了加解锁文件夹功能的小工具!大家也可以想一想,在什么场景下需要对文件夹进行加锁操作呢? 1)一些比较敏感工作文件 2)防止别人复制个人的学习成果文件 等等场景
623 0