/// <summary> /// Returns directory list from FTPS Client /// </summary> /// <param name="Path"></param> /// <param name="ftps"></param> /// <param name="ParentDirectory"></param> /// <returns></returns> public static List<RemoteFile> GetRemoteDirectories(string Path, AlexPilotti.FTPS.Client.FTPSClient ftps, string ParentDirectory = "") { List<RemoteFile> Files = new List<RemoteFile>(); RemoteDirectories(ref Files, Path, ftps, ParentDirectory); return Files; }
private static void RemoteDirectories(ref List<RemoteFile> Files, string Path, AlexPilotti.FTPS.Client.FTPSClient ftps, string ParentDirectory = "") { foreach (DirectoryListItem dli in ftps.GetDirectoryList(Path)) { if (dli.Name != "." && dli.Name != "..") { string Path2 = (Path + "/" + dli.Name).Replace("//","/"); RemoteFile Rfile; try { if (!dli.IsDirectory) { Rfile = new RemoteFile(dli.Name, Path2, Common.FixNulllong(ftps.GetFileTransferSize(Path2)), ParentDirectory, dli.IsDirectory, (DateTime)ftps.GetFileModificationTime(Path2), (DateTime)ftps.GetFileModificationTime(Path2)); } else { Rfile = new RemoteFile(dli.Name, Path2, 0, ParentDirectory, dli.IsDirectory, dli.CreationTime, dli.CreationTime); } } catch (Exception) { Rfile = new RemoteFile(dli.Name, Path2, 0, ParentDirectory, dli.IsDirectory, dli.CreationTime, dli.CreationTime); } Files.Add(Rfile); if (dli.IsDirectory) { RemoteDirectories(ref Files, Path2, ftps, ParentDirectory + "/" + dli.Name); } } } }