internal static void recurseResources(List <FileResource> resources, DirectoryObj DirObj, String Host) { foreach (var d in DirObj.DirectoryInfo.GetDirectories()) { recurseResources(resources, new DirectoryObj() { Root = DirObj.Root, DirectoryInfo = d }, Host); } foreach (var f in DirObj.DirectoryInfo.GetFiles()) { int version = 0; string name; var regobj = Regex.Match(f.FullName, @"(\.\d{1,3})?(\.[a-zA-Z]{1,4})$"); var newresource = new FileResource(); // Version + File Extension Match if (regobj.Groups[1].Success && regobj.Groups[2].Success) { int.TryParse(regobj.Groups[1].Value.Substring(1), out version); newresource.Version = version; // strip version from fullname name = String.Format("{0}{1}", f.FullName.Substring(0, regobj.Groups[1].Index), f.Extension); } else { name = f.FullName; } resources.Add(new FileResource() { RelativeName = Paths.BeginWhack(f.FullName.Substring(DirObj.Root.Length).ToLower().Replace("\\", "/")), Name = name, Host = Host, Extension = Path.GetExtension(f.FullName.ToLower()), Version = version }); } }
internal static void recurseResources(List<FileResource> resources, DirectoryObj Dir) { foreach (var d in Dir.DirectoryInfo.GetDirectories()) recurseResources(resources, new DirectoryObj() { Root = Dir.Root, DirectoryInfo = d } ); foreach (var f in Dir.DirectoryInfo.GetFiles()) { resources.Add(new FileResource() { FullName = f.FullName.Substring(Dir.Root.Length).ToLower().Replace("\\", "/"), Name = Path.GetFileName(f.FullName.Substring(Dir.Root.Length).ToLower()), Extension = Path.GetExtension(f.FullName.ToLower()) }); } }