/// <summary> /// 从目录中获取sql的配置文件((Encoding默认为Encoding.UTF8) /// </summary> /// <param name="sqlConfig"></param> /// <param name="configDirectory"></param> /// <param name="encoding"></param> /// <param name="isAllDirectories"></param> /// <param name="fileType"></param> public static void LoadDirectory(this ILuaSqlConfigManager sqlConfig, DirectoryInfo configDirectory, Encoding encoding, bool isAllDirectories = true, LuaSqlConfigFileExtType fileType = LuaSqlConfigFileExtType.lua) { sqlConfig.LoadDirectory(configDirectory.FullName, encoding, isAllDirectories, fileType); }
/// <summary> /// 从目录中获取sql的配置文件 /// </summary> /// <param name="sqlConfig"></param> /// <param name="configDirectoryPath"></param> /// <param name="encoding"></param> /// <param name="isAllDirectories"></param> /// <param name="fileType"></param> public static void LoadDirectory(this ILuaSqlConfigManager sqlConfig, string configDirectoryPath, Encoding encoding, bool isAllDirectories = true, LuaSqlConfigFileExtType fileType = LuaSqlConfigFileExtType.lua) { bool bLoad = false; string[] files; if (isAllDirectories) { files = Directory.GetFiles(configDirectoryPath, "*", SearchOption.AllDirectories); } else { files = Directory.GetFiles(configDirectoryPath); } if (files?.Length > 0) { if (fileType == LuaSqlConfigFileExtType.all) { //先查找目录下时候有全局文件,全局文件先加载(带luaglobal前缀的文件) var globalfile = files.Where(l => Path.GetFileNameWithoutExtension(l).ToLower().StartsWith(LuaSqlConfigConst.LuaGlobalFileLabel)) .OrderByDescending(l => Path.GetFileNameWithoutExtension(l)).ToList(); if (globalfile?.Count > 0) { //先加载全局文件 foreach (var g in globalfile) { sqlConfig.LoadFile(g, encoding); } foreach (var f in files) { if (!globalfile.Contains(f)) { sqlConfig.LoadFile(f, encoding); } } } else { foreach (var f in files) { sqlConfig.LoadFile(f, encoding); } } bLoad = true; } else { var fileExts = new List <string>(); if ((fileType & LuaSqlConfigFileExtType.txt) == LuaSqlConfigFileExtType.txt) { fileExts.Add(EFHelper.Services.EFCoreExUtility.GetEnumDescription(LuaSqlConfigFileExtType.txt)); } if ((fileType & LuaSqlConfigFileExtType.lua) == LuaSqlConfigFileExtType.lua) { fileExts.Add(EFHelper.Services.EFCoreExUtility.GetEnumDescription(LuaSqlConfigFileExtType.lua)); } var finfos = files.Select(l => new FileInfo(l)).Where(l => fileExts.Contains(l.Extension.ToLower())).ToList(); if (finfos?.Count > 0) { //先查找目录下时候有全局文件,全局文件先加载(带luaglobal前缀的文件) var globalfile = finfos.Where(l => Path.GetFileNameWithoutExtension(l.Name) .ToLower().StartsWith(LuaSqlConfigConst.LuaGlobalFileLabel)) .OrderByDescending(l => Path.GetFileNameWithoutExtension(l.Name)).ToList(); if (globalfile?.Count > 0) { //先加载全局文件 foreach (var g in globalfile) { sqlConfig.LoadFile(g, encoding); } foreach (var f in finfos) { if (!globalfile.Contains(f)) { sqlConfig.LoadFile(f, encoding); } } } else { foreach (var f in finfos) { sqlConfig.LoadFile(f, encoding); } } bLoad = true; } } } if (!bLoad) { throw new ArgumentException($"The directory [{configDirectoryPath}] does not exist LuaSQL configuration file.", nameof(configDirectoryPath)); } }
/// <summary> /// 从目录中获取sql的配置文件(Encoding默认为Encoding.UTF8) /// </summary> /// <param name="sqlConfig"></param> /// <param name="configDirectoryPath"></param> /// <param name="isAllDirectories"></param> /// <param name="fileType"></param> public static void LoadDirectory(this ILuaSqlConfigManager sqlConfig, string configDirectoryPath, bool isAllDirectories = true, LuaSqlConfigFileExtType fileType = LuaSqlConfigFileExtType.lua) { sqlConfig.LoadDirectory(configDirectoryPath, Encoding.UTF8, isAllDirectories, fileType); }