zoukankan      html  css  js  c++  java
  • 用C#实现文件夹拷贝

    C#中没有拷贝整个文件夹的方法,最近需要用到,就写了一个Demo,拿出来跟大家分享一下

    主要思想:

    1、写一个拷贝文件夹的函数CopyFolder,传入源文件夹路径和目的文件夹路径

    2、判断目的文件夹路径是否存在,如果不存在,创建此文件夹

    3、获取源文件夹下的所有文件,拷贝这些文件到目的文件夹

    4、获取源文件夹下的所有文件夹,循环调用CopyFolder(此处利用了递归)

    代码:

    拷贝文件夹
    using System;
    using System.IO;

    namespace FolderService
    {
    publicclass FolderService
    {
    staticvoid Main(string[] args)
    {
    if (args.Length !=2)
    {
    Console.WriteLine(
    "请输入源文件夹地址和目的文件夹地址!");
    return;
    }

    // 判断源文件夹是否存在
    if (!Directory.Exists(args[0]))
    {
    Console.WriteLine(
    "源文件夹不存在!");
    return;
    }

    // 拷贝文件夹
    FolderService copy =new FolderService();
    string flag = copy.CopyFolder(args[0], args[1]);
    Console.WriteLine(flag);
    }

    ///<summary>
    /// Copy文件夹
    ///</summary>
    ///<param name="sPath">源文件夹路径</param>
    ///<param name="dPath">目的文件夹路径</param>
    ///<returns>完成状态:success-完成;其他-报错</returns>
    publicstring CopyFolder(string sPath, string dPath)
    {
    string flag ="success";
    try
    {
    // 创建目的文件夹
    if (!Directory.Exists(dPath))
    {
    Directory.CreateDirectory(dPath);
    }

    // 拷贝文件
    DirectoryInfo sDir =new DirectoryInfo(sPath);
    FileInfo[] fileArray
    = sDir.GetFiles();
    foreach (FileInfo file in fileArray)
    {
    file.CopyTo(dPath
    +"\\"+ file.Name, true);
    }

    // 循环子文件夹
    DirectoryInfo dDir =new DirectoryInfo(dPath);
    DirectoryInfo[] subDirArray
    = sDir.GetDirectories();
    foreach (DirectoryInfo subDir in subDirArray)
    {
    CopyFolder(subDir.FullName, dPath
    +"//"+ subDir.Name);
    }
    }
    catch (Exception ex)
    {
    flag
    = ex.ToString();
    }
    return flag;
    }
    }
    }

    测试Dmo:

    1、把代码保存为FolderService.cs,把此cs文件放到H:\Program Files\Microsoft Visual Studio 9.0\VC下(具体根据VS安装路径不同,地址有所不同)

    2、打开Visual Studio Tools中的Visual Studio 2008 Command Prompt,把FolderService.cs拖到此Command Prompt中,在路径最前方加入csc+空格,回车编译此程序,如下图:

    3、可以在目录H:\Program Files\Microsoft Visual Studio 9.0\VC中看到生成了一个FolderService.exe文件,运行此文件(打开cmd.exe,把FolderService.exe拖到cmd.exe中,加上参数,回车),如下图:

    4、这时可以看到,E:\test目录下的文件全部都拷贝到G:\test目录下了

  • 相关阅读:
    docker基础总结
    python基础学习总结
    静默(命令行)安装oracle 11g
    java中如果函数return可能抛出异常怎么办
    Android 开发先驱的博客列表
    栈与队列
    线性表
    算法
    数据结构概论
    iOS开发中实现手势解锁
  • 原文地址:https://www.cnblogs.com/puwei222/p/2054413.html
Copyright © 2011-2022 走看看