zoukankan      html  css  js  c++  java
  • C# 实现文件或目录复制到指定目录

     public void CopyFilesToDirKeepSrcDirName(string srcPath, string destDir)
            {
                if (Directory.Exists(srcPath))
                {
                    DirectoryInfo srcDirectory = new DirectoryInfo(srcPath);
                    CopyDirectory(srcPath, destDir + @"" + srcDirectory.Name);
                }
                else
                {
                    CopyFile(srcPath, destDir);
                }
            }
            public void CopyFilesToDir(string srcPath, string destDir)
            {
                if(Directory.Exists(srcPath))
                {
                    CopyDirectory(srcPath, destDir);
                }
                else
                {
                    CopyFile(srcPath, destDir);
                }
            }
            private void CopyDirectory(string srcDir, string destDir)
            {
                DirectoryInfo srcDirectory = new DirectoryInfo(srcDir);
                DirectoryInfo destDirectory = new DirectoryInfo(destDir);
    
                if (destDirectory.FullName.StartsWith(srcDirectory.FullName, StringComparison.CurrentCultureIgnoreCase))
                {
                    throw new Exception("cannot copy parent to child directory.");
                }
    
                if (!srcDirectory.Exists)
                {
                    return;
                }
    
                if (!destDirectory.Exists)
                {
                    destDirectory.Create();
                }
    
                FileInfo[] files = srcDirectory.GetFiles();
    
                for (int i = 0; i < files.Length; i++)
                {
                    CopyFile(files[i].FullName, destDirectory.FullName);
                }
    
                DirectoryInfo[] dirs = srcDirectory.GetDirectories();
    
                for (int j = 0; j < dirs.Length; j++)
                {
                    CopyDirectory(dirs[j].FullName, destDirectory.FullName + @"" + dirs[j].Name);
                }
            }
    
            private void CopyFile(string srcFile, string destDir)
            {
                DirectoryInfo destDirectory = new DirectoryInfo(destDir);
                string fileName = Path.GetFileName(srcFile);
                if (!File.Exists(srcFile))
                {
                    return;
                }
    
                if (!destDirectory.Exists)
                {
                    destDirectory.Create();
                }
    
                File.Copy(srcFile, destDirectory.FullName + @"" + fileName, true);
    
            } 
    
  • 相关阅读:
    2019年8月下旬
    2019年8月上旬
    2019年7月 vue专题
    2019年7月上
    mysql安装 demo [linux centos7] [5.7.26]
    记一个日志冲突——管中窥豹[java混乱的日志体系]
    Mybatis-Generator demo
    dubbo doc入门文档
    springBoot+mysql+mybatis demo [基本配置] [遇到的问题]
    nginx安装demo
  • 原文地址:https://www.cnblogs.com/jerry1999/p/4115867.html
Copyright © 2011-2022 走看看