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);

        }
时间: 2024-12-07 10:10:08

C# 实现文件或目录复制到指定目录的相关文章

把文件a.txt复制到指定目录下为a.mp3

package cn.mldn.demo;import java.io.*;public class TestDemo{ public static void main(String[] args) throws IOException {  File f1=new File("d:/a.txt");  InputStream fis=new FileInputStream(f1);  File f2=new File("d:/a.mp3");  OutputStr

遍历指定文件夹下的所有图片,并复制到指定目录下

import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.imageio.ImageIO; public class Copy { /** * 遍历文件夹下的所有图片文件,并复制到指定文件夹下 */ static String srcfile = "E:/I

tar命令——将文件/目录压缩到指定目录

有时候,我们可能会有这样的需求:将文件/目录压缩到指定目录.比如将/home和/boot目录的所有文件和目录本身压缩到bak目录下,一般情况我们要这样做的话,必须先建立一个bak目录,然后将/home和/boot目录复制到bak目录下,然后再打包压缩bak目录,这样的话,既浪费时间,又浪费磁盘空间. 现在有个更好的方法来解决这个问题,那就是利用tar的--xform参数,该参数的作用是在打包压缩时利用sed的替换命令修改文件名,你可以在文件名前加上前缀. 举个例子吧. tar czvf test

利用wget下载文件,并保存到指定目录

利用WGET下载文件,并保存到指定目录 [email protected] ~/下载 $ wget -P /home/cbx/下载/PDF https://www.linuxmint.com/documentation/user-guide/Cinnamon/chinese_16.0.pdf https://www.linuxmint.com/documentation.php wget是Linux上一个非常不错的下载指令,而其指令的内容虽然说是非常简单,但内藏许多的参数,也算是Linux工作者

wamp的www目录更改为指定目录

wamp的www目录更改为指定目录内容简介:主要过程: (1)修改httpd.conf文件 (2)修改新的www目录下的index.php文件 (3)修改manage.ini的278行和manage.tpl的125行 我的WAMP2.0安装在E盘在,所以我的www目录是e:/wamp/www/,我想将它改为g:/www/ 第一步:就是照别人说的,修改httpd.conf文件 Do 主要过程: (1)修改httpd.conf文件 (2)修改新的www目录下的index.php文件 (3)修改man

不需要写代码,文件夹右键cmd定位指定目录

引子 这篇文章其实本来不是这样的,因为我用C#的代码实现了一个程序,后面才突然发现,我太傻太天真了,明明不需要写程序和写代码的,结果自己把自己二住了. 我们来看看效果图. 由于,我自己的原因,这个功能,最开始我使用的居然是自己写的程序来实现,太傻了. 参考了.两个网站,就可用搞定的,其实. 注册表路径: 图片最小面有的哦... 1. 如何对文件添加右键菜单. 2.如何使用cmd定位到指定目录. 参考内容: http://jingyan.baidu.com/article/295430f12371

Visual Studio将Delop之后生成的dll或者wsp复制到指定目录

用VS开发sharepoint项目的时候,有很多个project,每个project都会生成一个wsp包,如果手工把wsp文件找到,复制出来,拷贝到服务器上,再部署,就有点麻烦. 所以写了个批处理命令,每次deploy成功之后都会自动运行这个命令. 右击Project,属性,Build Events,在Post build event command line填写批处理命令,因为写不来VS本身的命令. copyWSP.bat中写如下命令: copy /y C:\Batter\Solutionn\

Android—将Bitmap图片保存到SD卡目录下或者指定目录

直接上代码就不废话啦 一:保存到SD卡下 [java] view plain copy File file = new File(Environment.getExternalStorageDirectory(), System.currentTimeMillis()+".jpg"); try { out = new FileOutputStream(file); btImage.compress(Bitmap.CompressFormat.JPEG, 90, out); System

Java 列出目录下的指定目录或文件

需求:列出d盘下的全部txt文件 实现方法:利用File类的过滤器功能 package com.test.common.util; import java.io.File; import java.io.FilenameFilter; public class ReadFileFilter { /* * 读取指定路径下的文件名.txt文件 */ public void getFileList() { File file = new File("D:\\"); File[] fileLi