c# 文件夹操作

using System;
using System.Collections.Generic;
using System.Data;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace Test
{
    class Program
    {

        static void Main(string[] args)
        {
          // Create("E:\\新建");
            //Delete("E:\\新建");
           // Copy("E:\\新建", "E:\\haha");
        }
        /// <summary>
        /// 创建文件夹
        /// </summary>
        /// <param name="dirPath">路径</param>
        public static void Create(string dirPath)
        {
            string[] paths = dirPath.Split('\\');
            string path = paths[0];
            for (int i = 1; i < paths.Length; i++)
            {
                path = path + "\\" + paths[i];
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
            }
        }
         /// <summary>
        /// 删除文件夹
        /// </summary>
        /// <param name="dirPath">路径</param>
        public static void Delete(string dirPath)
        {
            if (Directory.Exists(dirPath))
            {
                DirectoryInfo di = new DirectoryInfo(dirPath);
                foreach (FileInfo fi in di.GetFiles())
                {
                    fi.Delete();
                }

                foreach (DirectoryInfo dir in di.GetDirectories())
                {
                    Delete(dir.FullName);
                }
                Directory.Delete(dirPath);
            }
        }
       
        /// <summary>
        /// 拷贝文件夹中的文件至另外一个文件夹中
        /// </summary>
        /// <param name="sourceDirPath">源路径</param>
        /// <param name="destDirPath">目的路径</param>
        public static void Copy(string sourceDirPath, string destDirPath)
        {
            if (Directory.Exists(sourceDirPath))
            {
                if (!Directory.Exists(destDirPath))
                    Create(destDirPath);

                DirectoryInfo di = new DirectoryInfo(sourceDirPath);

                foreach (FileInfo fi in di.GetFiles())
                {
                    string toName = destDirPath + "\\" + fi.Name;
                    File.Copy(fi.FullName, toName, true);
                }

                foreach (DirectoryInfo dir in di.GetDirectories())
                {
                    Copy(dir.FullName, destDirPath + dir.FullName.Replace(sourceDirPath, ""));
                }
            }
        }

    }
}

猜你喜欢

转载自www.cnblogs.com/macT/p/9956507.html