/// <summary>检查指定目录下是否有同名静态库</summary> /// <param name="di"></param> /// <param name="root"></param> /// <returns></returns> private Boolean CheckPartial(DirectoryInfo di, String root) { var fi = di.GetAllFiles("*.lib;*.a").FirstOrDefault(); if (fi != null && fi.Exists) { if (!Libs.Contains(fi.FullName)) { var lib = new LibFile(fi.FullName); WriteLog("发现静态库:{0, -12} {1}".F(lib.Name, fi.FullName)); Libs.Add(fi.FullName); } return(true); } var p = di.Parent; if (p == null || p == di) { return(false); } // 截止到当前目录 if (p.FullName.EnsureEnd("\\").EqualIgnoreCase(root.GetFullPath().EnsureEnd("\\"))) { return(false); } return(CheckPartial(p, root)); }
/// <summary>添加库文件</summary> /// <param name="path"></param> /// <param name="filter"></param> /// <param name="allSub"></param> public void AddLibs(String path, String filter = null, Boolean allSub = false) { path = path.GetFullPath(); if (!Directory.Exists(path)) { return; } if (filter.IsNullOrEmpty()) { filter = "*.lib;*.a"; } //var opt = allSub ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly; foreach (var item in path.AsDirectory().GetAllFiles(filter, allSub)) { // 不包含,直接增加 if (!Libs.Contains(item.FullName)) { var lib = new LibFile(item.FullName); WriteLog("发现静态库:{0, -12} {1}".F(lib.Name, item.FullName)); Libs.Add(item.FullName); } } }