场景
C#中File类的常用读取与写入文件方法的利用:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/99693983
注:
博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的步伐猿 获取编程相干电子书、教程推送与免费下载。
实现
获取文件的扩展名
- /// <summary>
- /// 获取文件的扩展名
- /// </summary>
- /// <param name="filename">完备文件名</param>
- /// <returns>返回扩展名</returns>
- public static string GetPostfixStr(string filename)
- {
- int num = filename.LastIndexOf(".");
- int length = filename.Length;
- return filename.Substring(num, length - num);
- }
复制代码
读取文件内容
- /// <summary>
- /// 读取文件内容
- /// </summary>
- /// <param name="path">要读取的文件路径</param>
- /// <returns>返回文件内容</returns>
- public static string ReadFile(string path)
- {
- string result;
- if (!System.IO.File.Exists(path))
- {
- result = "不存在相应的目次";
- }
- else
- {
- System.IO.FileStream stream = new System.IO.FileStream(path, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite);
- System.IO.StreamReader streamReader = new System.IO.StreamReader(stream, System.Text.Encoding.Default);
- result = streamReader.ReadToEnd();
- streamReader.Close();
- streamReader.Dispose();
- }
- return result;
- }
复制代码
指定编码格式读取文件内容
- /// <summary>
- /// 读取文件内容
- /// </summary>
- /// <param name="path">要读取的文件路径</param>
- /// <param name="encoding">编码格式</param>
- /// <returns>返回文件内容</returns>
- public static string ReadFile(string path, System.Text.Encoding encoding)
- {
- string result;
- if (!System.IO.File.Exists(path))
- {
- result = "不存在相应的目次";
- }
- else
- {
- System.IO.FileStream stream = new System.IO.FileStream(path, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite);
- System.IO.StreamReader streamReader = new System.IO.StreamReader(stream, encoding);
- result = streamReader.ReadToEnd();
- streamReader.Close();
- streamReader.Dispose();
- }
- return result;
- }
复制代码
向指定文件写入内容
- /// <summary>
- /// 向指定文件写入内容
- /// </summary>
- /// <param name="path">要写入内容的文件完备路径</param>
- /// <param name="content">要写入的内容</param>
- public static void WriteFile(string path, string content)
- {
- try
- {
- object obj = new object();
- if (!System.IO.File.Exists(path))
- {
- System.IO.FileStream fileStream = System.IO.File.Create(path);
- fileStream.Close();
- }
- lock (obj)
- {
- using (System.IO.StreamWriter streamWriter = new System.IO.StreamWriter(path, false, System.Text.Encoding.Default))
- {
- streamWriter.WriteLine(content);
- streamWriter.Close();
- streamWriter.Dispose();
- }
- }
- }
- catch (System.Exception ex)
- {
- ICSharpCode.Core.LoggingService<FileHelper>.Error(String.Format("写入文件{0}非常:{1}", path, ex.Message), ex);
- }
- }
复制代码
指定编码格式向文件写入内容
- /// <summary>
- /// 向指定文件写入内容
- /// </summary>
- /// <param name="path">要写入内容的文件完备路径</param>
- /// <param name="content">要写入的内容</param>
- /// <param name="encoding">编码格式</param>
- public static void WriteFile(string path, string content, System.Text.Encoding encoding)
- {
- try
- {
- object obj = new object();
- if (!System.IO.File.Exists(path))
- {
- System.IO.FileStream fileStream = System.IO.File.Create(path);
- fileStream.Close();
- }
- lock (obj)
- {
- using (System.IO.StreamWriter streamWriter = new System.IO.StreamWriter(path, false, encoding))
- {
- streamWriter.WriteLine(content);
- streamWriter.Close();
- streamWriter.Dispose();
- }
- }
- }
- catch (System.Exception ex)
- {
- ICSharpCode.Core.LoggingService<FileHelper>.Error(String.Format("写入文件{0}非常:{1}", path, ex.Message), ex);
- }
- }
复制代码
文件复制
- /// <summary>
- /// 文件复制
- /// </summary>
- /// <param name="orignFile">源文件完备路径</param>
- /// <param name="newFile">目标文件完备路径</param>
- public static void FileCoppy(string orignFile, string newFile)
- {
- System.IO.File.Copy(orignFile, newFile, true);
- }
复制代码
文件删除
- /// <summary>
- /// 删除文件
- /// </summary>
- /// <param name="path">要删除的文件的完备路径</param>
- public static void FileDel(string path)
- {
- System.IO.File.Delete(path);
- }
复制代码
文件移动
- /// <summary>
- /// 文件移动(剪贴->粘贴)
- /// </summary>
- /// <param name="orignFile">源文件的完备路径</param>
- /// <param name="newFile">目标文件完备路径</param>
- public static void FileMove(string orignFile, string newFile)
- {
- System.IO.File.Move(orignFile, newFile);
- }
复制代码
判定一组文件是否都存在
- /// <summary>
- /// 判定一组文件是否都存在
- /// </summary>
- /// <param name="filePathList">文件路径List</param>
- /// <returns>文件是否全部存在</returns>
- public static bool IsFilesExist(List<string> filePathList)
- {
- bool isAllExist = true;
- foreach(string filePath in filePathList)
- {
- if(!File.Exists(filePath))
- {
- isAllExist = false;
- }
- }
- return isAllExist;
- }
复制代码
创建目次
- /// <summary>
- /// 创建目次
- /// </summary>
- /// <param name="orignFolder">当前目次</param>
- /// <param name="newFloder">要创建的目次名</param>
- public static void FolderCreate(string orignFolder, string newFloder)
- {
- System.IO.Directory.SetCurrentDirectory(orignFolder);
- System.IO.Directory.CreateDirectory(newFloder);
- }
复制代码
删除目次
- /// <summary>
- /// 删除目次
- /// </summary>
- /// <param name="dir">要删除的目次</param>
- public static void DeleteFolder(string dir)
- {
- if (System.IO.Directory.Exists(dir))
- {
- string[] fileSystemEntries = System.IO.Directory.GetFileSystemEntries(dir);
- for (int i = 0; i < fileSystemEntries.Length; i++)
- {
- string text = fileSystemEntries[i];
- if (System.IO.File.Exists(text))
- {
- System.IO.File.Delete(text);
- }
- else
- {
- FileHelper.DeleteFolder(text);
- }
- }
- System.IO.Directory.Delete(dir);
- }
- }
复制代码
目次内容复制
- /// <summary>
- /// 目次内容复制
- /// </summary>
- /// <param name="srcPath">源目次</param>
- /// <param name="aimPath">目标目次</param>
- public static void CopyDir(string srcPath, string aimPath)
- {
- try
- {
- if (aimPath[aimPath.Length - 1] != System.IO.Path.DirectorySeparatorChar)
- {
- aimPath += System.IO.Path.DirectorySeparatorChar;
- }
- if (!System.IO.Directory.Exists(aimPath))
- {
- System.IO.Directory.CreateDirectory(aimPath);
- }
- string[] fileSystemEntries = System.IO.Directory.GetFileSystemEntries(srcPath);
- string[] array = fileSystemEntries;
- for (int i = 0; i < array.Length; i++)
- {
- string text = array[i];
- if (System.IO.Directory.Exists(text))
- {
- FileHelper.CopyDir(text, aimPath + System.IO.Path.GetFileName(text));
- }
- else
- {
- System.IO.File.Copy(text, aimPath + System.IO.Path.GetFileName(text), true);
- }
- }
- }
- catch (System.Exception ex)
- {
- throw new System.Exception(ex.ToString());
- }
- }
复制代码
|