当前位置: 首页>>代码示例>>C#>>正文


C# String.AsDirectory方法代码示例

本文整理汇总了C#中String.AsDirectory方法的典型用法代码示例。如果您正苦于以下问题:C# String.AsDirectory方法的具体用法?C# String.AsDirectory怎么用?C# String.AsDirectory使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在String的用法示例。


在下文中一共展示了String.AsDirectory方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: CopyToIfNewer

        //public static IEnumerable<String> GetAllFileNames(this DirectoryInfo di, String searchPattern = null, Boolean allSub = true)
        //{
        //    var root = di.FullName.GetFullPath().EnsureEnd("\\");
        //    if (String.IsNullOrEmpty(searchPattern)) searchPattern = "*";
        //    var opt = allSub ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly;

        //    foreach (var pattern in searchPattern.Split(";", "|"))
        //    {
        //        foreach (var item in di.GetFiles(pattern, opt))
        //        {
        //            yield return item.FullName.TrimStart(root);
        //        }
        //    }
        //}

        ///// <summary>从指定目录更新本目录的文件</summary>
        ///// <param name="di"></param>
        ///// <param name="src"></param>
        ///// <param name="searchPattern"></param>
        ///// <param name="allSub"></param>
        ///// <returns></returns>
        //public static Int32 UpdateFrom(this DirectoryInfo di, String src, String searchPattern = null, Boolean allSub = true)
        //{
        //    if (di == null || String.IsNullOrEmpty(di.FullName)) return 0;
        //    if (!String.IsNullOrEmpty(src) || !Directory.Exists(src)) return 0;

        //    var root = di.FullName.GetFullPath().EnsureEnd("\\");
        //    if (String.IsNullOrEmpty(searchPattern)) searchPattern = "*";
        //    var opt = allSub ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly;

        //    var count = 0;
        //    foreach (var pattern in searchPattern.Split(";"))
        //    {
        //        foreach (var item in Directory.GetFiles(root, pattern, opt))
        //        {
        //            var srcFile = src.CombinePath(item.TrimStart(root));

        //            try
        //            {
        //                File.Copy(srcFile, item, true);

        //                count++;
        //            }
        //            catch { }
        //        }
        //    }
        //    return count;
        //}

        /// <summary>对比源目录和目标目录,复制双方都存在且源目录较新的文件</summary>
        /// <param name="di">源目录</param>
        /// <param name="destDirName">目标目录</param>
        /// <param name="exts">文件扩展列表。比如*.exe;*.dll;*.config</param>
        /// <param name="allSub">是否包含所有子孙目录文件</param>
        /// <param name="callback">复制每一个文件之前的回调</param>
        /// <returns></returns>
        public static Int32 CopyToIfNewer(this DirectoryInfo di, String destDirName, String exts = null, Boolean allSub = false, Action<String> callback = null)
        {
            var dest = destDirName.AsDirectory();
            if (!dest.Exists) return 0;

            var count = 0;

            // 目标目录根,用于截断
            var root = dest.FullName.EnsureEnd(Path.DirectorySeparatorChar.ToString());
            foreach (var item in dest.GetAllFiles(exts, allSub))
            {
                var name = item.FullName.TrimStart(root);
                var fi = di.FullName.CombinePath(name).AsFile();
                //fi.CopyToIfNewer(item.FullName);
                if (fi.Exists && item.Exists && fi.LastWriteTime > item.LastWriteTime)
                {
                    if (callback != null) callback(name);
                    fi.CopyTo(item.FullName, true);
                    count++;
                }
            }

            return count;
        }
开发者ID:tommybiteme,项目名称:X,代码行数:80,代码来源:PathHelper.cs


注:本文中的String.AsDirectory方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。