最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#實(shí)現(xiàn)WPF項(xiàng)目復(fù)制和移動(dòng)文件夾

 更新時(shí)間:2022年03月28日 09:36:28   作者:.NET開(kāi)發(fā)菜鳥(niǎo)  
這篇文章介紹了C#實(shí)現(xiàn)WPF項(xiàng)目復(fù)制和移動(dòng)文件夾的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

使用WPF做的一個(gè)簡(jiǎn)單的操作文件的demo,包括復(fù)制和移動(dòng)文件夾,核心思想就是使用遞歸,如果只是移動(dòng)或者復(fù)制單一文件,直接使用File.Copy()或者File.Move()方法即可。

XAML代碼

<Window x:Class="OperationFile.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:OperationFile"
        mc:Ignorable="d"
        Title="MainWindow" Height="220" Width="300">
    <Grid>
        <Button Content="復(fù)制文件" HorizontalAlignment="Left" VerticalAlignment="Top" Height="30" Width="100" Margin="80,20"
                x:Name="btnCopy" Click="btnCopy_Click"/>

        <Button Content="移動(dòng)文件" HorizontalAlignment="Left" VerticalAlignment="Top" Height="30" Width="100" Margin="80,70"
                x:Name="btnMove" Click="btnMove_Click"/>
    </Grid>
</Window>

后端代碼如下:

using System;
using System.Windows;

namespace OperationFile
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        /// <summary>
        /// 移動(dòng)文件夾(拷貝)
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnMove_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                FileUtility.MoveFolder(@"C:\Test", @"D:\Raw Data\Temp");
                MessageBox.Show("移動(dòng)文件夾完成");
            }
            catch (Exception ex)
            {
                MessageBox.Show("移動(dòng)文件夾出錯(cuò)");
            }
        }

        /// <summary>
        /// 復(fù)制文件夾
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnCopy_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                FileUtility.CopyFolder(@"C:\Test", @"D:\Raw Data\Temp");
                MessageBox.Show("復(fù)制文件夾完成");
            }
            catch (Exception ex)
            {
                MessageBox.Show("復(fù)制文件夾出錯(cuò)");
            }
        }
    }
}

FileUtility類(lèi)代碼

using System;
using System.IO;

namespace OperationFile
{
    public static class FileUtility
    {
        /// <summary>
        /// 復(fù)制文件夾及文件
        /// </summary>
        /// <param name="sourceFolder">原文件路徑</param>
        /// <param name="destFolder">目標(biāo)文件路徑</param>
        /// <returns></returns>
        public static void CopyFolder(string sourceFolder, string destFolder)
        {
            try
            {
                //如果目標(biāo)路徑不存在,則創(chuàng)建目標(biāo)路徑
                if (!Directory.Exists(destFolder))
                {
                    Directory.CreateDirectory(destFolder);
                }
                //得到原文件根目錄下的所有文件
                string[] files = Directory.GetFiles(sourceFolder);
                foreach (string file in files)
                {
                    string name = Path.GetFileName(file);
                    string dest = Path.Combine(destFolder, name);
                    // 復(fù)制文件
                    File.Copy(file, dest);
                }
                //得到原文件根目錄下的所有文件夾
                string[] folders = Directory.GetDirectories(sourceFolder);
                foreach (string folder in folders)
                {
                    string dirName = folder.Split('\\')[folder.Split('\\').Length - 1];
                    string destfolder = Path.Combine(destFolder, dirName);
                    // 遞歸調(diào)用
                    CopyFolder(folder, destfolder);
                }
            }
            catch (Exception ex)
            {
                throw new Exception($"copy file Error:{ex.Message}\r\n source:{ex.StackTrace}");
            }
        }


        /// <summary>
        /// 移動(dòng)文件
        /// </summary>
        /// <param name="sourceFolder">源文件夾</param>
        /// <param name="destFolder">目標(biāo)文件呢</param>
        public static void MoveFolder(string sourceFolder, string destFolder)
        {
            try
            {
                //如果目標(biāo)路徑不存在,則創(chuàng)建目標(biāo)路徑
                if (!Directory.Exists(destFolder))
                {
                    Directory.CreateDirectory(destFolder);
                }
                //得到原文件根目錄下的所有文件
                string[] files = Directory.GetFiles(sourceFolder);
                foreach (string file in files)
                {
                    string name = Path.GetFileName(file);
                    string dest = Path.Combine(destFolder, name);
                    // 移動(dòng)文件
                    File.Move(file, dest);
                }
                //得到原文件根目錄下的所有文件夾
                string[] folders = Directory.GetDirectories(sourceFolder);
                foreach (string folder in folders)
                {
                    string dirName = folder.Split('\\')[folder.Split('\\').Length - 1];
                    string destfolder = Path.Combine(destFolder, dirName);
                    // 遞歸調(diào)用
                    MoveFolder(folder, destfolder);
                }

                // 刪除源文件夾
                Directory.Delete(sourceFolder);
            }
            catch (Exception ex)
            {
                throw new Exception($"move file Error:{ex.Message}\r\n source:{ex.StackTrace}");
            }
        }
    }
}

到此這篇關(guān)于C#實(shí)現(xiàn)WPF項(xiàng)目復(fù)制和移動(dòng)文件夾的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • WPF實(shí)現(xiàn)Drawer抽屜控件

    WPF實(shí)現(xiàn)Drawer抽屜控件

    這篇文章主要為大家詳細(xì)介紹了如何使用WPF實(shí)現(xiàn)一個(gè)Drawer抽屜控件,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-11-11
  • 詳解如何在C#中處理空值

    詳解如何在C#中處理空值

    在任何編程語(yǔ)言中開(kāi)發(fā)應(yīng)用程序時(shí),經(jīng)常會(huì)遇到空異?;蚩找卯惓?,那么下面讓我們探討一下在C#中處理空值的各種方法吧,需要的可以收藏下
    2023-07-07
  • 基于C#編寫(xiě)經(jīng)理評(píng)分系統(tǒng)

    基于C#編寫(xiě)經(jīng)理評(píng)分系統(tǒng)

    最近接了這樣一個(gè)項(xiàng)目,要求使用c#編寫(xiě)經(jīng)理評(píng)分系統(tǒng),需求,要顯示員工信息,實(shí)現(xiàn)項(xiàng)目經(jīng)理給員工評(píng)分功能,今天小編分步驟給大家介紹,需要的的朋友參考下
    2017-03-03
  • WPF換膚設(shè)計(jì)原理淺析

    WPF換膚設(shè)計(jì)原理淺析

    這篇文章主要為大家詳細(xì)介紹了WPF換膚設(shè)計(jì)原理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • C#使用ZXing實(shí)現(xiàn)二維碼和條形碼的生成

    C#使用ZXing實(shí)現(xiàn)二維碼和條形碼的生成

    這篇文章主要為大家詳細(xì)介紹了C#如何使用ZXing實(shí)現(xiàn)二維碼和條形碼的生成與識(shí)別,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • silverlight實(shí)現(xiàn)圖片局部放大效果的方法

    silverlight實(shí)現(xiàn)圖片局部放大效果的方法

    這篇文章主要介紹了silverlight實(shí)現(xiàn)圖片局部放大效果的方法,結(jié)合實(shí)例形式分析了silverlight針對(duì)圖片屬性的相關(guān)操作技巧,需要的朋友可以參考下
    2017-03-03
  • .NET中實(shí)現(xiàn)彩色光標(biāo)、動(dòng)畫(huà)光標(biāo)及自定義光標(biāo)的方法

    .NET中實(shí)現(xiàn)彩色光標(biāo)、動(dòng)畫(huà)光標(biāo)及自定義光標(biāo)的方法

    這篇文章主要介紹了.NET中實(shí)現(xiàn)彩色光標(biāo)、動(dòng)畫(huà)光標(biāo)及自定義光標(biāo)的方法,非常實(shí)用的功能,需要的朋友可以參考下
    2014-08-08
  • 解析C#中[],List,Array,ArrayList的區(qū)別及應(yīng)用

    解析C#中[],List,Array,ArrayList的區(qū)別及應(yīng)用

    本篇文章主要是對(duì)C#中[],List,Array,ArrayList的區(qū)別及應(yīng)用進(jìn)行了詳細(xì)的介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2014-01-01
  • C#實(shí)現(xiàn)簡(jiǎn)單記事本程序

    C#實(shí)現(xiàn)簡(jiǎn)單記事本程序

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)簡(jiǎn)單記事本程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • C#?調(diào)用外部exe的三種方式

    C#?調(diào)用外部exe的三種方式

    調(diào)用外部exe是常用的功能,本文主要介紹了C#?調(diào)用外部exe的三種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-04-04

最新評(píng)論

邓州市| 西林县| 南川市| 西乌珠穆沁旗| 上饶市| 米泉市| 临漳县| 富蕴县| 涪陵区| 广元市| 贺州市| 七台河市| 阳西县| 通化县| 澜沧| 奎屯市| 岳阳市| 太仓市| 个旧市| 南宁市| 鹿泉市| 布拖县| 桐乡市| 且末县| 嘉兴市| 阿坝县| 镇江市| 田阳县| 新源县| 昌图县| 阳山县| 蒲城县| 玉环县| 易门县| 辽中县| 峡江县| 宝鸡市| 四子王旗| 汶上县| 弥勒县| 柳林县|