c#复制文件夹(复制主文件夹和不复制主文件夹)

复制主文件夹

        private void CopyDirectory(string srcdir, string desdir)
        {
            try
            {
                if (File.Exists(srcdir))
                {
                    File.Copy(srcdir, desdir);
                }
                else
                {
                    string folderName = srcdir.Substring(srcdir.LastIndexOf("\\") + 1);

                    string desfolderdir = desdir + "\\" + folderName;

                    if (desdir.LastIndexOf("\\") == (desdir.Length - 1))
                    {
                        desfolderdir = desdir + folderName;
                    }
                    string[] filenames = Directory.GetFileSystemEntries(srcdir);

                    foreach (string file in filenames)// 遍历所有的文件和目录
                    {
                        if (Directory.Exists(file))// 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件
                        {

                            string currentdir = desfolderdir + "\\" + file.Substring(file.LastIndexOf("\\") + 1);
                            if (!Directory.Exists(currentdir))
                            {
                                Directory.CreateDirectory(currentdir);
                            }

                            CopyDirectory(file, desfolderdir);
                        }

                        else // 否则直接copy文件
                        {
                            string srcfileName = file.Substring(file.LastIndexOf("\\") + 1);

                            srcfileName = desfolderdir + "\\" + srcfileName;

                            if (!Directory.Exists(desfolderdir))
                            {
                                Directory.CreateDirectory(desfolderdir);
                            }

                            File.Copy(file, srcfileName);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

不复制主文件夹

        private void CopyDirectory(string srcdir, string desdir)
        {
            try
            {
                if (File.Exists(srcdir))
                {
                    File.Copy(srcdir, desdir);
                }
                else
                {
                    string folderName = srcdir.Substring(srcdir.LastIndexOf("\\") + 1);

                    string desfolderdir = desdir ;
                    //string desfolderdir = desdir + "\\" + folderName;

                    if (desdir.LastIndexOf("\\") == (desdir.Length - 1))
                    {
                        desfolderdir = desdir + folderName;
                    }
                    string[] filenames = Directory.GetFileSystemEntries(srcdir);

                    foreach (string file in filenames)// 遍历所有的文件和目录
                    {
                        if (Directory.Exists(file))// 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件
                        {

                            string currentdir = desdir + "\\" + file.Substring(file.LastIndexOf("\\") + 1);
                            if (!Directory.Exists(currentdir))
                            {
                                Directory.CreateDirectory(currentdir);
                            }

                            desfolderdir = desdir + "\\" + file.Substring(file.LastIndexOf("\\") + 1);

                            CopyDirectory(file, desfolderdir);
                        }

                        else // 否则直接copy文件
                        {
                            string srcfileName = file.Substring(file.LastIndexOf("\\") + 1);

                            srcfileName = desfolderdir + "\\" + srcfileName;

                            if (!Directory.Exists(desfolderdir))
                            {
                                Directory.CreateDirectory(desfolderdir);
                            }

                            File.Copy(file, srcfileName);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
时间: 2024-10-07 23:10:56

c#复制文件夹(复制主文件夹和不复制主文件夹)的相关文章

[shell实例]——用脚本实现向多台服务器批量复制文件(nmap、scp)

练习环境: (1)所有服务器将防火墙和selinux关闭 (2)所有服务器的root密码设置为aixocm (3)所有服务器都为10.0.100.*网段,并保证能够和其它主机通信 (4)所有服务器确保sshd服务已经启动(开放默认的22端口) 脚本要求实现: 将本机/etc目录下以conf为扩展名的文件打包压缩为tar.bz2,然后将此文件复制一份到10.0.100.1-->10.0.100.254地址段上所有开启的主机,具体路径为/tmp/sjjy/文件.在使用scp复制时无需手动输入密码.

复制文件(上传至共享文件夹)

复制文件(上传至共享文件夹) 功  能:复制文件.也可以指定是否覆盖同名的目标文件. 语  法:FileCopy ( sourcefile , targetfile {, replace}) 参  数: sourcefile:string 类型,指定要复制文件的名称(源文件名称): targetfile:string 类型,指定要复制到哪一个文件(目标文件名称): replace:Boolean类型,指定当目标文件已经存在时,是否覆盖同名文件. True --- 覆盖同名文件: False --

node复制文件夹,压缩zip,上传

一:用到的模块和简单介绍 npm文档:request :node请求的模块,可以给用程序请求服务器的接口https://www.npmjs.com/package/requestfs:读写文件的,很常用https://www.npmjs.com/package/fspath:路径,各种给文件夹弄路径什么的https://www.npmjs.com/package/pathjs-cookie:获取cokie的,在请求的时候需要用到https://www.npmjs.com/package/js-c

linux如何复制文件夹和移动文件夹

复制: CP命令 格式: CP [选项] 源文件或目录 目的文件或目录 选项说明:-b 同名,备分原来的文件 -f 强制覆盖同名文件 -r 按递归方式保留原目录结构复制文件 cp -Rf /home/user1/* /root/temp/ 将 /home/user1目录下的所有东西拷到/root/temp/下而不拷贝user1目录本身. 即格式为:cp -Rf 原路径/ 目的路径/ 移动: mv ./WorkReport/web.xml ./WorkReport/WEB-INF/ 注:移动/Wo

Web 在线文件管理器学习笔记与总结(13)重命名文件夹(14)复制文件夹

(13)重命名文件夹 ① 重命名文件夹通过 rename($oldname,$newname) 实现 ② 检测文件夹名是否符合规范 ③ 检测当前目录中是否存在同名文件夹名称,如果不存在则重命名成功 index.php: <?php require 'dir.func.php'; require 'file.func.php'; require 'common.func.php'; $path = 'file'; $path = @$_REQUEST['path'][email protected

java复制文件夹及所有子目录和文件

package text; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStrea

java实现文件夹(包括其中的子文件夹、子文件)的复制——递归

这是学校java课的一道实验题,题目如下:编程,根据指定的源和目标位置,完成指定文件或文件夹(包括其中的子文件夹.子文件)的复制. 以下是我的实现,使用了递归: 1 package com.simon.myfinal; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.FileOutputStream; 6 import java.io.InputStream; 7 8 /** 9 * Crea

使用IO流对文件夹的复制(文件夹中带有子目录)

当我们要复制带有子目录的文件夹的时候,就必须使用递归,这样才能把全部的文件夹都复制到位 思路和步骤: 对于文件夹的复制,分2种情况               (1)当我们对文件进行遍历的时候,如果目标文件夹下的文件是个标准文件的话,我们就可以直接去做复制的动作,               (2)当目标文件中,是带有文件夹的文件,那么这个时候就需要对文件夹进行递归,直到最后它是个标准文件后,我们在做复制动作 有了上述的2种情况后,那么这个需求,需要提供2种方法,1是对标准文件的复制,2是对带有

PHP递归复制文件夹以及传输文件夹到其他服务器。

项目中需要复制整个文件夹,有时候还需要将整个文件夹传输到远程服务器. 这里就要递归遍历整个文件夹了,想看递归遍历文件夹的代码. function deepScanDir($dir) { $fileArr = array (); $dirArr = array (); $dir = rtrim($dir, '//'); if (is_dir($dir)) { $dirHandle = opendir($dir); while (false !== ($fileName = readdir($dir

PHP 查看文件夹大小、复制文件夹、删除文件夹

PHP虽然提供了 filesize.copy.unlink 等文件操作的函数,但是没有提供 dirsize.copydir.rmdirs 等文件夹操作的函数(rmdir也只能删除空目录).所以只能手动编写这些函数,主要的技巧是通过递归将问题逐层分解,直到分解成可以直接解决的最小子问题. ====================查看文件夹大小===================== 由于文件夹是没有大小的,平常所说的文件夹尺寸准确的说应该是文件夹中所有文件的总大小.所以只需要将文件夹逐层查找,统