建立两个类用于完成文件和文件夹的相关操作

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace FileDirOpreate
{
    /// <summary>
    /// 与文件有关的操作类
    /// </summary>
    public class FileDirOpreate
    {
        /// <summary>
        /// Deletes the file.
        /// </summary>
        /// <param name="FileFullPath">要删除的文件全路径</param>
        /// <returns></returns>
        public bool DeleteFile(string FileFullPath)
        {
            if (File.Exists(FileFullPath) == true)
            {
                File.SetAttributes(FileFullPath, FileAttributes.Normal);
                File.Delete(FileFullPath);
                return true;
            }
            else
            {
                return false;
            }
        }

        /// <summary>
        /// Gets the name of the file.包括文件的扩展名
        /// </summary>
        /// <param name="FileFullPath">文件的全路径</param>
        /// <returns></returns>
        public string GetFileName(string FileFullPath)
        {
            if (File.Exists(FileFullPath) == true)
            {
                FileInfo F = new FileInfo(FileFullPath);
                return F.Name;
            }
            else
            {
                return null;
            }
        }

        /// <summary>
        /// Gets the name of the file.
        /// </summary>
        /// <param name="FileFullPath">文件的全路径</param>
        /// <param name="IncludeExtension">是否包含文件的扩展名</param>
        /// <returns></returns>
        public string GetFileName(string FileFullPath, bool IncludeExtension)
        {
            if (File.Exists(FileFullPath) == true)
            {
                FileInfo F = new FileInfo(FileFullPath);
                if (IncludeExtension == true)
                {
                    return F.Name;
                }
                else
                {
                    return F.Name.Replace(F.Extension, "");
                }
            }
            else
            {
                return null;
            }
        }

        /// <summary>
        /// Gets the file extension.
        /// </summary>
        /// <param name="FileFullPath">The file full path.</param>
        /// <returns></returns>
        public string GetFileExtension(string FileFullPath)
        {
            if (File.Exists(FileFullPath) == true)
            {
                FileInfo F = new FileInfo(FileFullPath);
                return F.Extension;
            }
            else
            {
                return null;
            }
        }
        /// <summary>
        /// Opens the file.
        /// </summary>
        /// <param name="FileFullPath">The file full path.</param>
        /// <returns></returns>
        public bool OpenFile(string FileFullPath)
        {
            if (File.Exists(FileFullPath) == true)
            {
                System.Diagnostics.Process.Start(FileFullPath);
                return true;
            }
            else
            {
                return false;
            }
        }
        /// <summary>
        /// Gets the size of the file.
        /// </summary>
        /// <param name="FileFullPath">The file full path.</param>
        /// <returns></returns>
        public string GetFileSize(string FileFullPath)
        {
            if (File.Exists(FileFullPath) == true)
            {
                FileInfo F = new FileInfo(FileFullPath);
                long FL = F.Length;
                if (FL > 1024 * 1024 * 1024)
                {
                    //   KB      MB    GB   TB
                    return System.Convert.ToString(Math.Round((FL + 0.00) / (1024 * 1024 * 1024), 2)) + " GB";
                }
                else if (FL > 1024 * 1024)
                {
                    return System.Convert.ToString(Math.Round((FL + 0.00) / (1024 * 1024), 2)) + " MB";
                }
                else
                {
                    return System.Convert.ToString(Math.Round((FL + 0.00) / 1024, 2)) + " KB";
                }
            }
            else
            {
                return null;
            }
        }

        /// <summary>
        /// Files to stream byte.
        /// </summary>
        /// <param name="FileFullPath">The file full path.</param>
        /// <returns></returns>
        public byte[] FileToStreamByte(string FileFullPath)
        {
            byte[] fileData = null;
            if (File.Exists(FileFullPath) == true)
            {
                FileStream FS = new FileStream(FileFullPath, System.IO.FileMode.Open);
                fileData = new byte[FS.Length];
                FS.Read(fileData, 0, fileData.Length);
                FS.Close();
                return fileData;
            }
            else
            {
                return null;
            }
        }
        /// <summary>
        /// Bytes the stream to file.
        /// </summary>
        /// <param name="CreateFileFullPath">The create file full path.</param>
        /// <param name="StreamByte">The stream byte.</param>
        /// <returns></returns>
        public bool ByteStreamToFile(string CreateFileFullPath, byte[] StreamByte)
        {
            try
            {
                if (File.Exists(CreateFileFullPath) == true)
                {
                    DeleteFile(CreateFileFullPath);
                }
                FileStream FS;
                FS = File.Create(CreateFileFullPath);
                FS.Write(StreamByte, 0, StreamByte.Length);
                FS.Close();
                return true;
            }
            catch
            {
                return false;
            }
        }

        /// <summary>
        /// 序列化XML文件
        /// </summary>
        /// <param name="FileFullPath">The file full path.</param>
        /// <returns></returns>
        public bool SerializeXmlFile(string FileFullPath)
        {
            try
            {
                System.Data.DataSet DS = new System.Data.DataSet();
                DS.ReadXml(FileFullPath);
                FileStream FS = new FileStream(FileFullPath + ".tmp", FileMode.OpenOrCreate);
                System.Runtime.Serialization.Formatters.Binary.BinaryFormatter FT = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
                FT.Serialize(FS, DS);
                FS.Close();
                DeleteFile(FileFullPath);
                File.Move(FileFullPath + ".tmp", FileFullPath);
                return true;
            }
            catch
            {
                return false;
            }

        }

        /// <summary>
        /// 反序列化XML文件
        /// </summary>
        /// <param name="FileFullPath">The file full path.</param>
        /// <returns></returns>
        public bool DeserializeXmlFile(string FileFullPath)
        {
            try
            {
                System.Data.DataSet DS = new System.Data.DataSet();
                FileStream FS = new FileStream(FileFullPath, FileMode.Open);
                System.Runtime.Serialization.Formatters.Binary.BinaryFormatter FT = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
                ((System.Data.DataSet)FT.Deserialize(FS)).WriteXml(FileFullPath + ".tmp");
                FS.Close();
                DeleteFile(FileFullPath);
                File.Move(FileFullPath + ".tmp", FileFullPath);
                return true;
            }
            catch
            {
                return false;
            }
        }
    }


   /// <summary>
   /// 新类:完成文件夹的相关操作
   /// </summary>
    public class DirOperate
    {
        public enum OperateOption
        {
            /// <summary>
            /// 存在删除再创建
            /// </summary>
            ExistDelete,
            /// <summary>
            /// 存在直接返回
            /// </summary>
            ExistReturn
        }

        /// <summary>
        /// 创建文件夹
        /// </summary>
        /// <param name="DirFullPath">The dir full path.</param>
        /// <param name="DirOperateOption">The dir operate option.</param>
        /// <returns></returns>
        public bool CreateDir(string DirFullPath, OperateOption DirOperateOption)
        {
            try
            {
                if (Directory.Exists(DirFullPath) == false)
                {
                    Directory.CreateDirectory(DirFullPath);
                }
                else if (DirOperateOption == OperateOption.ExistDelete)
                {
                    Directory.Delete(DirFullPath, true);
                }
                return true;
            }
            catch
            {
                return false;
            }
        }

        /// <summary>
        /// 删除文件夹
        /// </summary>
        /// <param name="DirFullPath">全称路径.</param>
        /// <returns></returns>
        public bool DeleteDir(string DirFullPath)
        {
            if (Directory.Exists(DirFullPath) == true)
            {
                Directory.Delete(DirFullPath, true);
                return true;
            }
            else
            {
                return false;
            }
        }

        /// <summary>
        /// 得到目录内的文件名,仅在当前指定的目录下
        /// </summary>
        /// <param name="DirFullPath">指定的目录名</param>
        /// <returns></returns>
        public string[] GetDirFiles(string DirFullPath)
        {
            string[] FileList = null;
            if (Directory.Exists(DirFullPath) == true)
            {
                FileList = Directory.GetFiles(DirFullPath, "*.*", SearchOption.TopDirectoryOnly);

            }
            return FileList;
        }

        /// <summary>
        /// 得到目录内的文件名,
        /// </summary>
        /// <param name="DirFullPath">T指定的目录名</param>
        /// <param name="SO">The SO.</param>
        /// <returns></returns>
        public string[] GetDirFiles(string DirFullPath, SearchOption SO)
        {
            string[] FileList = null;
            if (Directory.Exists(DirFullPath) == true)
            {
                FileList = Directory.GetFiles(DirFullPath, "*.*", SO);
            }
            return FileList;
        }
        /// <summary>
        ///  得到目录内的文件名,
        /// </summary>
        /// <param name="DirFullPath">The dir full path.</param>
        /// <param name="SearchPattern">The search pattern.</param>
        /// <returns></returns>
        public string[] GetDirFiles(string DirFullPath, string SearchPattern)
        {
            string[] FileList = null;
            if (Directory.Exists(DirFullPath) == true)
            {
                FileList = Directory.GetFiles(DirFullPath, SearchPattern);
            }
            return FileList;
        }

        /// <summary>
        ///  得到目录内的文件名,
        /// </summary>
        /// <param name="DirFullPath">The dir full path.</param>
        /// <param name="SearchPattern">The search pattern.</param>
        /// <param name="SO">The SO.</param>
        /// <returns></returns>
        public string[] GetDirFiles(string DirFullPath, string SearchPattern, SearchOption SO)
        {
            string[] FileList = null;
            if (Directory.Exists(DirFullPath) == true)
            {
                FileList = Directory.GetFiles(DirFullPath, SearchPattern, SO);
            }
            return FileList;
        }
    }
}

原文地址:https://www.cnblogs.com/zydcl/p/1522171.html