• C#备份收藏夹代码


    //添加系统引用

    using System.IO;

    private void 备份收藏夹ToolStripMenuItem_Click(object sender, EventArgs e)
            {

                string BackupFavoritePath;
                string SystemFavoritePath = GetSystemFavoritePath();
                FolderBrowserDialog myfolderBrowserDialog = new FolderBrowserDialog();
                myfolderBrowserDialog.RootFolder = Environment.SpecialFolder.Desktop;
                if (myfolderBrowserDialog.ShowDialog() == DialogResult.OK)
                {
                    if (myfolderBrowserDialog.SelectedPath != "")
                    {
                        BackupFavoritePath = myfolderBrowserDialog.SelectedPath;
                        CopyDir(SystemFavoritePath, BackupFavoritePath);

                     }
                    else
                    {
                        return;
                    }
                }
            }

            /// <summary>
            /// 从注册表获取收藏夹路径
            /// </summary>
            /// <returns></returns>
            private static string GetSystemFavoritePath()
            {
                string strSystemFavoritePath = "";
                RegistryKey hklm = Registry.CurrentUser;
                RegistryKey software = hklm.OpenSubKey(@"Software/Microsoft/Windows/CurrentVersion/Explorer/Shell Folders", true);
                if (software == null)
                {
                    strSystemFavoritePath = "读取失败";
                }
                else
                {
                    strSystemFavoritePath = software.GetValue("Favorites").ToString();
                }
                return strSystemFavoritePath;
            }

            /// <summary>
            /// 循环递归拷贝目录文件函数
            /// </summary>
            /// <param name="sourcePath"></param>
            /// <param name="targetPath"></param>
            private void CopyDir(string sourcePath, string targetPath)
            {
                try
                {
                    // 检查目标目录是否以目录分割字符结束如果不是则添加之
                    if (targetPath[targetPath.Length - 1] != System.IO.Path.DirectorySeparatorChar)
                    {
                        targetPath += System.IO.Path.DirectorySeparatorChar;
                    }

                    // 判断目标目录是否存在如果不存在则新建之
                    if (!System.IO.Directory.Exists(targetPath))
                    {
                        System.IO.Directory.CreateDirectory(targetPath);
                    }

                    // 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
                    // 如果你指向copy目标文件下面的文件而不包含目录请使用下面的方法
                    // string[] fileList = Directory.GetFiles(sourcePath);
                    string[] fileList = System.IO.Directory.GetFileSystemEntries(sourcePath);

                    // 遍历所有的文件和目录
                    foreach (string file in fileList)
                    {
                        // 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件
                        if (System.IO.Directory.Exists(file))
                        {
                            CopyDir(file, targetPath + System.IO.Path.GetFileName(file));
                        }

                        // 否则直接Copy文件
                        else
                        {
                            System.IO.File.Copy(file, targetPath + System.IO.Path.GetFileName(file), true);
                        }
                    }
                }

                catch (Exception e)
                {
                    throw;
                }
            }

  • 相关阅读:
    75.iOS内存管理
    74.CocoaPods安装和使用教程
    73.解决Xcode10 library not found for -lstdc++ 找不到问题
    eclipse中启动tomcat,不能访问localhost解决办法
    点对点模式
    点对点架构模式
    淘宝网分析质量属性场景
    架构漫谈读后感
    《探索需求》阅读笔记6
    《探索需求》阅读笔记5
  • 原文地址:https://www.cnblogs.com/xqf222/p/3306810.html
Copyright © 2020-2023  润新知