8.1 文件对话框
8.1.1 OpenFileDialog 对话框
在 C# 中共有 3 种文件对话框,分别实现不同的功能
- 打开文件的对话框 OpenFileDialog、
- 保存文件的对话框SaveFileDialog
- 打开文件夹的对话框 FolderBroswerDialog
OpenFileDialog(打开文件对话框)
示例:
private void btnOpen_Click(object sender, EventArgs e)
{
if (ofDlg.ShowDialog() == DialogResult.OK)//判断是否点击的为“打开”按钮
{
txtPath.Text = ofDlg.FileName;
}
}
OpenFileDialog 常用属性见表
- InitialDirectory :对话框的初始目录
- Filter :文件筛选器,按“显示名称 | 类型”格式编写
- FilterIndex :在对话框中选择的文件筛选器的索引
- Title :将显示在对话框标题栏中的字符
- AddExtension:是否自动添加默认扩展名
- CheckFileExists :在用户指定不存在的文件时是否显示警告
- CheckPathExists:在对话框返回之前,检查指定路径是否存在
- DefaultExt:默认扩展名
8.1.2 SaveFileDialog 对话框
SaveFileDialog(保存文件对话框)常用于软件中的“另存为”功能
示例:
private void btnSave_Click(object sender, EventArgs e)
{
if (sfDlg.ShowDialog() == DialogResult.OK)//判断是否点击的为“保存”按钮
{
txtPath.Text = sfDlg.FileName;
}
}
8.1.3 FolderBroswerDialog 对话框
FolderBroswerDialog(文件夹浏览对话框)的功能是选择指定文件夹
FolderBroswerDialog 常用属性见表
- Description :显示在对话框视图上方的字符串,用来指定显示给用户的指导信息
- RootFolder :设置根文件夹位置
- SelectedPath:对话框中最先选择的文件夹或用户,最后选择的文件夹完整路径
- ShowNewFolderButton :对话框中是否包括“新建文件夹”按钮
FolderBroswerDialog 常用方法为 ShowDialog()
示例:
private void btnBrowse_Click(object sender, EventArgs e)
{
if (fbDlg.ShowDialog() == DialogResult.OK)//判断是否点击的为“浏览”按钮
{
txtPath.Text = fbDlg.SelectedPath;
}
}
8.2 文件常用操作
8.2.2 文件常用操作方法
在 C# 中如果对文件进行创建、复制和删除等少量操作时,一般使用 File 类,常用方法见表
- Exists():用于检查指定文件是否存在
- Copy() :将现有文件复制到新文件中
- Move():将指定文件移动到新位置
- Delete() :删除指定文件
文件的复制与删除
示例:
static void Main(string[] args)
{
string path = @"e:\Test.txt";//去除字符串中的转义字符含义
if (File.Exists(path))
{
File.Copy(path,@"f:\Test2.txt");
File.Delete(path);
}
}
文件的移动
public partial class FileMove : Form
{
//获取文件路径按钮方法
private void btnSearchPath_Click(object sender, EventArgs e)
{
if (ofDlg.ShowDialog()==DialogResult.OK)
{
txtOldPath.Text = ofDlg.FileName;
}
}
}
public partial class FileMove : Form
{
private void btnSavePath_Click(object sender, EventArgs e)
{
sfDlg.AddExtension = true;
sfDlg.Filter = " txt files(*.txt)|*.txt|All files(*.*)|*.*";
sfDlg.FilterIndex = 1;
if (sfDlg.ShowDialog() == DialogResult.OK)
{
txtNewPath.Text = sfDlg.FileName;
}
}
}
//确认按钮方法
public partial class FileMove : Form
{
private void btnConfirmed_Click(object sender, EventArgs e)
{
string path = txtOldPath.Text;
if (File.Exists(path))
{
File.Move(path, txtNewPath.Text);
MessageBox.Show(" 移动成功。");
}
}
}
8.3 文件夹常用操作
8.3.1 文件夹操作方法介绍
同文件操作一样,在 C# 中对文件夹进行创建、移动和删除等操作有 Directory 类和 DirectoryInfo 类,常用方法见表
- Exists():用于检查指定文件夹是否存在
- CreateDirectory():在指定路径创建所有目录和子目录
- Move():将指定文件夹移动到新位置
- Delete(string):删除指定空文件夹
- Delete(string, bool):删除指定的文件夹并删除该文件夹中的所有子文件夹和文件
8.3.2 文件夹常用操作方法
文件夹的相关操作
示例:
static void Main(string[] args)
{
string path = @"E:\Test";
if (Directory.Exists(path))
{
Directory.Delete(path, true);//文件夹的删除操作
}
}
public partial class FileMove : Form
{
//选择文件夹按钮方法
private void btnSelectDirectory_Click(object sender, EventArgs e)
{
FolderBrowserDialog fbDlg = new FolderBrowserDialog();
if (fbDlg.ShowDialog() == DialogResult.OK)
{
txtDirectoryPath.Text = fbDlg.SelectedPath;
DirectoryPath = txtDirectoryPath.Text;
}
}
}
private void btnCreateDirectory_Click(object sender, EventArgs e)
{
//创建文件夹按钮方法
if (!String.IsNullOrEmpty(DirectoryPath))
{
string Path = DirectoryPath + "\\" + txtDirectoryName.Text;
Directory.CreateDirectory(Path);
MessageBox.Show(" 创建成功。");
}
else
{
MessageBox.Show(" 请选择需要创建目录的文件夹。");
}
}
private void btnMoveDirectory_Click(object sender, EventArgs e)
{
//其他代码省略…
if (!String.IsNullOrEmpty(txtMoveNewPath.Text))
{
//移动文件夹按钮方法
string NemPath = fbDlg.SelectedPath + "\\" + txtMoveNewPath.Text;
Directory.Move(DirectoryPath, NemPath);
MessageBox.Show(" 移动成功。");
}
}
//删除文件夹按钮方法
private void btnDeleteDirectory_Click(object sender, EventArgs e)
{
if (Directory.Exists(DirectoryPath))
{
Directory.Delete(DirectoryPath, true);
MessageBox.Show(" 删除成功。");
}
else
{
MessageBox.Show(" 请选择正确的路径。");
}
}
总结 :
- File 类中常用的方法有: Exists() 方法、Copy() 方法、Move() 方法以及 Delete() 方法
- Directory 类中常用的方法有:Exists() 方法、CreateDirectory() 方法、Move() 方法、Delete(string) 方法以及Delete(string, bool) 方法