| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.Globalization;
 
- using System.Runtime.InteropServices;
 
- namespace WinSCP
 
- {
 
-     [Guid("6B19CBFA-0D81-4B36-A587-E11AA6A06214")]
 
-     [ComVisible(true)]
 
-     public enum TransferMode
 
-     {
 
-         Binary = 0,
 
-         Ascii = 1,
 
-         Automatic = 2,
 
-     }
 
-     [Guid("E0F3C3C2-C812-48F1-A711-E0BD0F703976")]
 
-     [ComVisible(true)]
 
-     public enum OverwriteMode
 
-     {
 
-         Overwrite = 0,
 
-         Resume = 1,
 
-         Append = 2,
 
-     }
 
-     [Guid("155B841F-39D4-40C8-BA87-C79675E14CE3")]
 
-     [ClassInterface(Constants.ClassInterface)]
 
-     [ComVisible(true)]
 
-     public sealed class TransferOptions
 
-     {
 
-         public bool PreserveTimestamp { get; set; }
 
-         public FilePermissions FilePermissions { get; set; }
 
-         public TransferMode TransferMode { get; set; }
 
-         public string FileMask { get; set; }
 
-         public TransferResumeSupport ResumeSupport { get; set; }
 
-         public int SpeedLimit { get; set; }
 
-         public OverwriteMode OverwriteMode { get; set; }
 
-         internal Dictionary<string, string> RawSettings { get; private set; }
 
-         public TransferOptions()
 
-         {
 
-             PreserveTimestamp = true;
 
-             TransferMode = TransferMode.Binary;
 
-             ResumeSupport = new TransferResumeSupport();
 
-             OverwriteMode = OverwriteMode.Overwrite;
 
-             RawSettings = new Dictionary<string,string>();
 
-         }
 
-         public void AddRawSettings(string setting, string value)
 
-         {
 
-             RawSettings.Add(setting, value);
 
-         }
 
-         internal string ToSwitches()
 
-         {
 
-             List<string> switches = new List<string>();
 
-             if (FilePermissions != null)
 
-             {
 
-                 switches.Add(Session.FormatSwitch("permissions", FilePermissions.Octal));
 
-             }
 
-             else
 
-             {
 
-                 switches.Add("-nopermissions");
 
-             }
 
-             switches.Add(Session.BooleanSwitch(PreserveTimestamp, "preservetime", "nopreservetime"));
 
-             string transferModeName;
 
-             switch (TransferMode)
 
-             {
 
-                 case TransferMode.Binary:
 
-                     transferModeName = "binary";
 
-                     break;
 
-                 case TransferMode.Ascii:
 
-                     transferModeName = "ascii";
 
-                     break;
 
-                 case TransferMode.Automatic:
 
-                     transferModeName = "automatic";
 
-                     break;
 
-                 default:
 
-                     throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, "{0} is not supported", TransferMode));
 
-             }
 
-             switches.Add(Session.FormatSwitch("transfer", transferModeName));
 
-             if (!string.IsNullOrEmpty(FileMask))
 
-             {
 
-                 switches.Add(Session.FormatSwitch("filemask", FileMask));
 
-             }
 
-             if (ResumeSupport.State != TransferResumeSupportState.Default)
 
-             {
 
-                 switches.Add(Session.FormatSwitch("resumesupport", ResumeSupport.ToString()));
 
-             }
 
-             if (SpeedLimit > 0)
 
-             {
 
-                 switches.Add(Session.FormatSwitch("speed", SpeedLimit.ToString(CultureInfo.InvariantCulture)));
 
-             }
 
-             switch (OverwriteMode)
 
-             {
 
-                 case OverwriteMode.Overwrite:
 
-                     // noop
 
-                     break;
 
-                 case OverwriteMode.Resume:
 
-                     switches.Add(Session.FormatSwitch("resume"));
 
-                     break;
 
-                 case OverwriteMode.Append:
 
-                     switches.Add(Session.FormatSwitch("append"));
 
-                     break;
 
-                 default:
 
-                     throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, "{0} is not supported", OverwriteMode));
 
-             }
 
-             string arguments = string.Join(" ", switches.ToArray());
 
-             Tools.AddRawParameters(ref arguments, RawSettings, "-rawtransfersettings", true);
 
-             return arguments;
 
-         }
 
-     }
 
- }
 
 
  |