C#_文件的打开与保存——实质是拿到文件路径
前言:此应用场景是点击一个按钮让用户选择需要打开的文件或是需要保存的文件路径
1、打开文件
2、保存文件
打开文件(file.FileName为选择的文件路径)
private void bt_mac_import_Click(object sender, EventArgs e)
{
//新建一个文件对话框
OpenFileDialog pOpenFileDialog = new OpenFileDialog();
//设置对话框标题
pOpenFileDialog.Title = "导入MAC地址";
//设置打开文件类型
pOpenFileDialog.Filter = "(*.xlsx)|*.xlsx";
//监测文件是否存在
pOpenFileDialog.CheckFileExists = true;
//文件打开后执行以下程序
if (pOpenFileDialog.ShowDialog() == DialogResult.OK)
{
if (IsFileInUse(pOpenFileDialog.FileName) == false)//true表示正在使用,false没有使用
{
Console.WriteLine(pOpenFileDialog.FileName);
}
else
{
MessageBox.Show("文件被占用!", "警告");
}
}
}
private static bool IsFileInUse(string fileName) //判断文件是否正在使用
{
bool inUse = true;
FileStream fs = null;
try
{
fs = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.None);
inUse = false;
}
catch
{
}
finally
{
if (fs != null)
fs.Close();
}
return inUse; //true表示正在使用,false没有使用
}
保存文件(file.FileName为选择的文件路径)
private void button3_Click(object sender, EventArgs e) //按钮点击事件
{
SaveFileDialog file = new SaveFileDialog();
file.Filter = "txt文件(*.txt)|*.txt";//设置文件后缀的过滤
if (file.ShowDialog() == DialogResult.OK)//如果有文件保存路径
{
File.WriteAllText(file.FileName, log_richTextBox.Text);
}
}
补充内容保存文件时默认就存在一个文件名字
//补充一下,实现在保存文件时默认就存在一个文件名字,这样可以解决懒人的要求
private void button3_Click(object sender, EventArgs e) //按钮点击事件
{
SaveFileDialog file = new SaveFileDialog();
file.Filter = "txt文件(*.txt)|*.txt";//设置文件后缀的过滤
file.FileName = "hello.txt"; //默认写好存的文件名字(注意文件类型要和上面的保持一致)
if (file.ShowDialog() == DialogResult.OK)//如果有文件保存路径
{
File.WriteAllText(file.FileName, log_richTextBox.Text);
}
}