zoukankan      html  css  js  c++  java
  • C#文件操作工具类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;
    
    namespace ReadLog.Public
    {
        public class FileHelper
        {
            string[] format = { "*.jpg", "*.doc", "*.exe", "*.pdf", "*.xls" };
            #region 讀取文件 +string ReadFile(string path)
            /// <summary>
            /// 讀取文件
            /// </summary>
            /// <param name="path">文件路徑</param>
            public string ReadFile(string path)
            {
                //FileStream sFile = new FileStream(path, FileMode.Open);
                //byte[] byData = new byte[sFile.Length];
                //sFile.Read(byData, 0, byData.Length);
                //string fileContent = System.Text.Encoding.UTF8.GetString(byData);
                //return fileContent;
                string content = String.Empty;
                StreamReader reader = new StreamReader(path, GetFileEncodeType(path));
                return reader.ReadToEnd();
            }
            #endregion
    
            #region 删除文件夹下面所有文件 void deleteAll(string delpath, string geshi)
            /// <summary>  
            /// 删除文件夹下面所有文件  
            /// </summary>  
            /// <param name="oldpngPath">待删除文件路径</param>  
            /// <param name="newpngPath">删除到的新目录</param>  
            /// <param name="geshi">操作文件的格式 例如:*.png、*.xml</param>  
            public void deleteAll(string delpath, string geshi)
            {
                string[] files = Directory.GetFiles(delpath, geshi);
                foreach (string file in files)
                {
                    File.Delete(file);
                }
            }
            #endregion
    
            #region 複製文件夹下面所有文件 +void copyALl(string oldpngPath, string newpngPath, string geshi)
            /// <summary>  
            /// 複製文件夹下面所有文件
            /// </summary>  
            /// <param name="oldpngPath">待复制文件路径</param>  
            /// <param name="newpngPath">复制到的新目录</param>  
            /// <param name="geshi">操作文件的格式 例如:*.png、*.xml</param>  
            public void copyALl(string oldpngPath, string newpngPath, string geshi)
            {
                string[] files = Directory.GetFiles(oldpngPath, geshi);
                foreach (string file in files)
                {
                    string otherFile = Path.Combine(oldpngPath, Path.GetFileName(file));
                    File.Copy(file, newpngPath + "\" + Path.GetFileName(file));
                }
            }
            #endregion
    
            #region 移动文件夹下的所有文件   void moveAll(string olderpath, string topath)
            /// <summary>  
            /// 移动文件夹下的所有文件  
            /// </summary>  
            /// <param name="olderpath">待移动的文件目录</param>  
            /// <param name="topath">新目录</param>  
            public void moveAll(string olderpath, string topath)
            {
                string[] files = Directory.GetFiles(olderpath, format[0]);
                foreach (string file in files)
                {
                    File.Move(file, topath); //移动文件  
                }
            }
            #endregion
    
            #region 獲取一個文件夾下面所有文件 +string[] GetAllFiles(string path, string geshi)
            /// <summary>
            /// 獲取一個文件夾下面所有文件
            /// </summary>
            /// <param name="path"></param>
            /// <param name="geshi">文件類型</param>
            /// <returns></returns>
            public string[] GetAllFiles(string path, string geshi)
            {
                string[] files = Directory.GetFiles(path, geshi);
                return files;
            }
            #endregion
    
            #region 複製單個文件 + void copyOneFile(string oldfilePath, string newfilePath)
            /// <summary>
            /// 複製單個文件
            /// </summary>
            /// <param name="oldfilePath">文件原來的全路徑</param>
            /// <param name="newfilePath">文件新的全路徑</param>
            public void copyOneFile(string oldfilePath, string newfilePath, string newFileName)
            {
                if (!Directory.Exists(newfilePath))
                {
                    Directory.CreateDirectory(newfilePath);
                }
                File.Copy(oldfilePath, newfilePath + newFileName);
    
            }
            #endregion
    
            #region 移動一個文件 + void MoveOneFile(string oldfilePath, string newfilePath)
            /// <summary>
            /// 移動一個文件
            /// </summary>
            /// <param name="oldfilePath">文件原來的全路徑</param>
            /// <param name="newfilePath">文件新的全路徑</param>
            public void MoveOneFile(string oldfilePath, string newfilePath, string newFileName)
            {
                if (!Directory.Exists(newfilePath))
                {
                    Directory.CreateDirectory(newfilePath);
                }
                File.Move(oldfilePath, newfilePath + newFileName);
    
            }
            #endregion
    
            #region 刪除一個文件 +void DeleteOneFile(string oldfilePath)
            /// <summary>
            /// 刪除一個文件 
            /// </summary>
            /// <param name="oldfilePath">文件路徑</param>
            public void DeleteOneFile(string oldfilePath)
            {
    
                File.Delete(oldfilePath);
    
            }
            #endregion
    
            #region 讀取目錄的時候進行的提示
            public void ReadFileLogOnly(string path)
            {
                Console.WriteLine(string.Format("正在進入{0}目錄中", path));
                if (!Directory.Exists(path))
                {
                    Console.WriteLine(String.Format("文件目錄{0}不存在", path));
                    //return;
                    //Directory.CreateDirectory(erpLogPath);
                }
                else
                {
                    Console.WriteLine(String.Format("文件目錄{0}訪問正常", path));
                }
            }
            public void ReadFileLogAndCreate(string path)
            {
                Console.WriteLine(string.Format("正在進入{0}目錄", path));
                if (!Directory.Exists(path))
                {
                    Console.WriteLine(String.Format("文件目錄{0}不存在,正在進行創建", path));
    
                    Directory.CreateDirectory(path);
                    Console.WriteLine(String.Format("文件目錄{0}創建成功", path));
                }
                else
                {
                    Console.WriteLine(String.Format("文件目錄{0}訪問正常", path));
                }
            }
            #endregion
    
            #region 獲取問價的編碼方式 +System.Text.Encoding GetFileEncodeType(string filename)
            /// <summary>
            /// 獲取問價的編碼方式
            /// </summary>
            /// <param name="filename">文件路徑</param>
            /// <returns>文件的編碼方式</returns>
            public System.Text.Encoding GetFileEncodeType(string filename)
            {
                System.IO.FileStream fs = new System.IO.FileStream(filename, System.IO.FileMode.Open, System.IO.FileAccess.Read);
                System.IO.BinaryReader br = new System.IO.BinaryReader(fs);
                Byte[] buffer = br.ReadBytes(2);
                if (buffer[0] >= 0xEF)
                {
                    if (buffer[0] == 0xEF && buffer[1] == 0xBB)
                    {
                        return System.Text.Encoding.UTF8;
                    }
                    else if (buffer[0] == 0xFE && buffer[1] == 0xFF)
                    {
                        return System.Text.Encoding.BigEndianUnicode;
                    }
                    else if (buffer[0] == 0xFF && buffer[1] == 0xFE)
                    {
                        return System.Text.Encoding.Unicode;
                    }
                    else
                    {
                        return System.Text.Encoding.Default;
                    }
                }
                else
                {
                    return System.Text.Encoding.Default;
                }
    
            } 
            #endregion
        }
    }
  • 相关阅读:
    Python操作Excel表格
    Python爬虫实战:爬取美食节川菜信息
    超级实用的Python网络爬虫反反爬策略之构造UA池及IP代理池
    Python 静态方法
    IDEA连接远程服务器Docker部署Spring Boot项目
    Dockerfile 解析
    Python爬虫实战-统计博客园阅读量问题
    Docker 容器数据卷
    Docker镜像
    PL/SQL
  • 原文地址:https://www.cnblogs.com/xuhongfei/p/3872985.html
Copyright © 2011-2022 走看看