zoukankan      html  css  js  c++  java
  • 文件与文件夹的完全复制

    文件与文件夹的完全复制,包扩子目录与子目录的文件

    static void Main(string[] args)
            {
                string dir1 = @"E:MyTest2.NETFileAndDirCopyfile1";
                string dir2 = @"E:MyTest2.NETFileAndDirCopyfile2";
    
                FileAndDirFullCopy(dir1, dir2);
    
                Console.ReadKey();
            }
    
            /// <summary>
            /// Full copies of files and directories
            /// </summary>
            /// <param name="sourceDir">source Dir.</param>
            /// <param name="destinationDir">destination Dir.</param>
            public static void FileAndDirFullCopy(string sourceDir, string destinationDir)
            {
                DirectoryInfo source = new DirectoryInfo(sourceDir);
    
                //Files
                FileInfo[] files = source.GetFiles();
                foreach (var file in files)
                {
                    string copyToFile = Path.Combine(destinationDir, file.Name);
                    if (!File.Exists(copyToFile))
                    {
                        file.CopyTo(copyToFile);
                        Console.WriteLine($"文件:({file.FullName})被复制到({copyToFile}).
    ");
                    }
    
                    Console.WriteLine($"文件:({file.FullName})复制结束.");
                }
    
                //subfolders and subfiles
                DirectoryInfo[] subDirs = source.GetDirectories();
                foreach (var subDir in subDirs)
                {
                    //Directories
                    string copyToSubDir = Path.Combine(destinationDir, subDir.Name);
                    if (!Directory.Exists(copyToSubDir))
                    {
                        Console.WriteLine($"目录:{subDir.FullName},被创建.
    ");
                        Directory.CreateDirectory(copyToSubDir);
                    }
    
                    //subfiles
                    FileInfo[] subfiles = subDir.GetFiles();
                    foreach (var subfile in subfiles)
                    {
                        string copyToSubFile = Path.Combine(copyToSubDir, subfile.Name);
                        if (!File.Exists(copyToSubFile))
                        {
                            subfile.CopyTo(copyToSubFile);
                            Console.WriteLine($"文件:({subfile.FullName})被复制到({copyToSubFile}).
    ");
                        }
                    }
    
                    //subfolders
                    FileAndDirFullCopy(subDir.FullName, copyToSubDir);
    
                    Console.WriteLine($"目录:({subDir.FullName})复制结束.");
                    Console.WriteLine();
                }
            }
    
  • 相关阅读:
    在IIS7中应用Application Request Routing配置反向代理
    sqlite数据类型(时间 日期 ) timestamp 使用
    Windows环境下搭建Redis集群(Redis-x64-3.2.100)
    Vertx上传 官网Demo Java版
    Vert.x HTTP 服务器与客户端
    vertx-mysql-client/java/
    vertx-jersey
    Vertx和Jersey集成使用
    jersey常用注解解释 JAX-RS常用注解:
    Statement及PreparedStatement执行多个sql
  • 原文地址:https://www.cnblogs.com/tangge/p/14719977.html
Copyright © 2011-2022 走看看