• 文件操作类


    using System;
    using System.Collections.Generic;
    using System.IO;
    
    namespace FilesClass
    {
        public class FileOperate
        {
            /// <summary>
            /// 判断文件是否存在
            /// </summary>
            /// <param name="path">文件路径</param>
            /// <returns>判断文件是否存在</returns>
            public static bool IsExistsFile(string path)
            {
                return File.Exists(path);
            }
    
            /// <summary>
            /// 判断文件夹是否存在
            /// </summary>
            /// <param name="path">文件夹路径</param>
            /// <returns>判断文件夹是否存在</returns>
            public static bool IsExistsDir(string path)
            {
                return Directory.Exists(path);
            }
    
            /// <summary>
            ///
            /// </summary>
            /// <param name="path"></param>
            /// <returns></returns>
            public static bool CreateDir(string path)
            {
                try
                {
                    Directory.CreateDirectory(path);
                    return true;
                }
                catch (Exception ex)
                {
                    throw new Exception("创建文件夹失败,路径是>>" + path + " ,失败原因>>" + ex.Message);
                }
            }
    
            /// <summary>
            /// 删除文件
            /// </summary>
            /// <param name="path">文件路径</param>
            public static void DeleteFile(string path)
            {
                if (IsExistsFile(path))
                {
                    File.Delete(path);
                }
            }
    
            /// <summary>
            /// 拷贝一个文件夹里面的东西 到另外一个文件夹
            /// </summary>
            /// <param name="sourcePath"> 源文件夹 </param>
            /// <param name="targetPath"> 目标文件夹 </param>
            public static void CopyFolder(string sourcePath, string targetPath)
            {
                if (IsExistsDir(sourcePath))
                {
                    if (!IsExistsDir(targetPath))
                    {
                        CreateDir(targetPath);
                    }
    
                    //获得源文件下所有文件
                    List<string> filesList = new List<string>(Directory.GetFiles(sourcePath));
                    filesList.ForEach(file =>
                    {
                        string targetDir = Path.Combine(new string[] {targetPath, Path.GetFileName(file)});
                        File.Copy(file, targetDir);
                    });
    
                    //获取源文件下所有的目录文件
                    List<string> foldersList = new List<string>(Directory.GetDirectories(sourcePath));
                    foldersList.ForEach(folder =>
                    {
                        string targetDir = Path.Combine(new string[] {targetPath, Path.GetFileName(folder)});
                        CopyFolder(folder, targetDir);
                    });
                }
                else
                {
                    throw new DirectoryNotFoundException("源目录不存在");
                }
            }
    
            /// <summary>
            /// 移动文件夹到另外一个文件夹
            /// </summary>
            /// <param name="sourcePath"> 源文件夹 </param>
            /// <param name="targetPath"> 目标文件夹 </param>
            public static void MoveFolder(string sourcePath, string targetPath)
            {
                if (IsExistsDir(sourcePath))
                {
                    if (IsExistsDir(targetPath))
                    {
                        CreateDir(targetPath);
                    }
    
                    List<string> filesList = new List<string>(Directory.GetFiles(sourcePath));
    
                    filesList.ForEach(file =>
                    {
                        string targetDir = Path.Combine(new string[] {targetPath, Path.GetFileName(file)});
                        File.Copy(file, targetDir);
                    });
    
                    List<string> folderList = new List<string>(Directory.GetDirectories(sourcePath));
                    folderList.ForEach(folder =>
                    {
                        string targetDir = Path.Combine(new string[] {targetPath, Path.GetDirectoryName(folder)});
                        MoveFolder(folder, targetDir);
                    });
                }
                else
                {
                    throw new DirectoryNotFoundException("源目录不存在");
                }
            }
    
            /// <summary>
            /// 删除文件夹
            /// </summary>
            /// <param name="dirPath">目标文件夹</param>
            public static void DeleteFolder(string dirPath)
            {
                if (IsExistsDir(dirPath))
                {
                    foreach (string content in Directory.GetFileSystemEntries(dirPath))
                    {
                        if (IsExistsDir(content))
                        {
                            Directory.Delete(content, true);
                        }
                        else if (IsExistsFile(content))
                        {
                            DeleteFile(content);
                        }
                    }
                }
            }
    
            /// <summary>
            /// 删除文件夹  删除文件夹然后新建
            /// </summary>
            /// <param name="dirPath">目标文件夹</param>
            public static void DeleteFolderEx(string dirPath)
            {
                if (IsExistsDir(dirPath))
                {
                    Directory.Delete(dirPath, true);
                    Directory.CreateDirectory(dirPath);
                }
            }
    
            /// <summary>
            /// 重命名文件夹
            /// </summary>
            /// <param name="sourcePath"> 源文件夹 </param>
            /// <param name="targetPath"> 目标文件夹 </param>
            public static void RenameFolder(string sourcePath, string targetPath)
            {
                CopyFolder(sourcePath, targetPath);
                DeleteFolder(sourcePath);
            }
        }
    }
    

      

  • 相关阅读:
    set
    皮肤病药物
    C 批量保存图片进 mysql 利用MYSQL_BIND插入longblob
    eclipse行号显示
    dynamic_cast使用
    list添加删除操作
    VS2008 对齐代码
    c++ mysql二进制存取,blob存取
    Select Window关键字——模拟打开了多个页面窗口时,在不同的窗口之间,进行窗口切换
    Click Image关键字——模拟单击某一个图片 其余:Click Button / Click Link
  • 原文地址:https://www.cnblogs.com/kanekiken/p/7871952.html
Copyright © 2020-2023  润新知