目录
1.判断存在
判断文件存在:
if (!Directory.Exists(projectPath)) return;
判断文件夹存在:
if (!Directory.Exists(projectPath)) return;
判断文件扩展名
string filesuffix = System.IO.Path.GetExtension(path);
if (string.IsNullOrEmpty(filesuffix))
return;
if(filesuffix==".xls"|| filesuffix == ".xlsx")
{
tabControl1.SelectedTab = tp_dataShow;
}
2.打开
打开指定路径对应文件夹
if (!Directory.Exists(projectPath)) return;
System.Diagnostics.Process.Start("explorer.exe", projectPath);
读取指定路径下所有文件:
DirectoryInfo root = new DirectoryInfo(path);
root.GetFiles()
打开文件:
var path=@"C:\Users\Dell\Desktop\2020.txt"
System.Diagnostics.Process.Start(path);
3.创建
创建文件夹
(路径中没有的文件夹一起创建)
Directory.CreateDirectory(Path.Combine(dir, DefaultConfigManager.RFileDir));
4.写入文件
FileStream 写入文件
ps:没有文件的话默认会创建,每次写入会覆盖之前的内容,如果要换行是用"\r\n",用"\n"没用
private static void WriteFile(string filePath,string info)
{
using (FileStream fs = new FileStream(filePath, FileMode.Append, FileAccess.Write))
{
//获得字节数组
byte[] data = System.Text.Encoding.Default.GetBytes(info);
//开始写入
fs.Write(data, 0, data.Length);
//清空缓冲区、关闭流
fs.Flush();
}
}
如果不是覆盖文件 ,而是追加内容,在fs.Write
前添加:
//设定书写的开始位置为文件的末尾
fs.Position = fs.Length;
StreamReader/StreamWriter与FileStream的区别
网上操作文件还有很多的方式,除了FileStream,主要有StreamReader和StreamWriter,他们默认的编码方式都是UTF8。
区别如下:
- StreamReader、StreamWriter操作的是字符数据(char),常用于文本的打开与保存,而FileStream操作的是字节数据(byte),常用于数据的传输。
- FileStream只能简单的读取文件,StreamReader、StreamWriter有按行读取等封装方法。
- FileStream支持异步读写操作。还能指定FileMode、FileAccess、FileShare、FileOptions等各种文件访问控制权限、共享权限等,有很强的文件读写的灵活性。