public StatusCode GetModifiedDateSize(Models.FileTransportInfo transportInformation, out DateTime updateTime, out long lSize) { lSize = -1; updateTime = DateTime.Today; StatusCode retVal = init(); if (retVal != StatusCode.SUCCEED_STATUS) { return(retVal); } SftpClient client = null; try { using (client = new SftpClient(connectionInformation)) { client.Connect(); Renci.SshNet.Sftp.SftpFileAttributes attr = client.GetAttributes(transportInformation.SourceFullName); lSize = attr.Size; updateTime = attr.LastWriteTime; client.Disconnect(); } } catch (Exception ex) { return(new Common.CommonStatusCode(Common.CommonStatusCode.SFTP_WRITETIME_ERROR, new object[] { connectionInformation.Host, transportInformation.SourceFolderName, transportInformation.SourceFileName }, ex, Config, ApplicationID)); } finally { } return(retVal); }
/// <summary> /// Get the permissions of the specified file /// </summary> /// <param name="attr">The SftpFileAttributes object from which to obtain the permissions</param> /// <returns>The permissions formatted in numeric notation</returns> public static string Permissions(this Renci.SshNet.Sftp.SftpFileAttributes attr) { var p = (uint)attr.GetType().GetProperty("Permissions", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).GetValue(attr, null); return(string.Format("{2}{1}{0}", p & (1 | 2 | 4), (p & (8 | 16 | 32)) >> 3, (p & (64 | 128 | 256)) >> 6)); }