/// <summary> /// Gets a ZephyrFile implementation matching the URL type passed in. /// </summary> /// <param name="url">The Fullname or URL of the directory.</param> /// <param name="clients">A collection of connection clients.</param> /// <returns>A ZephyrFile implementation.</returns> public static ZephyrDirectory GetZephyrDirectory(string url, Clients clients = null) { ZephyrDirectory dir = null; UrlType type = GetUrlType(url); switch (type) { case UrlType.LocalDirectory: dir = new WindowsZephyrDirectory(url); break; case UrlType.NetworkDirectory: dir = new WindowsZephyrDirectory(url); break; case UrlType.AwsS3Directory: dir = new AwsS3ZephyrDirectory(clients?.aws, url); break; default: throw new Exception($"Url [{url}] Is Not A Known Directory Type."); } return(dir); }
/// <summary> /// Implementation of the ZephyrDirectory GetDirectories method using Windows FileSystem. /// </summary> /// <returns>An enumeration of WindowsZephyrDirectory objects.</returns> public override IEnumerable <ZephyrDirectory> GetDirectories() { String[] directories = Directory.GetDirectories(FullName); List <ZephyrDirectory> synDirs = new List <ZephyrDirectory>(); foreach (string dir in directories) { ZephyrDirectory synDir = new WindowsZephyrDirectory(Path.Combine(FullName, dir)); synDirs.Add(synDir); } return(synDirs); }