Пример #1
0
        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);
        }
Пример #2
0
        /// <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));
        }