ChmodEventArgs.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System.Runtime.InteropServices;
  2. namespace WinSCP
  3. {
  4. [Guid("DFCA88E2-6A47-4290-AD66-A39C5682D610")]
  5. [ClassInterface(Constants.ClassInterface)]
  6. [ComVisible(true)]
  7. public sealed class ChmodEventArgs : FileOperationEventArgs
  8. {
  9. public FilePermissions FilePermissions { get; private set; }
  10. internal const string Tag = "chmod";
  11. private ChmodEventArgs()
  12. {
  13. }
  14. internal static ChmodEventArgs Read(CustomLogReader areader)
  15. {
  16. ChmodEventArgs args = new ChmodEventArgs();
  17. using (ElementLogReader reader = new ElementLogReader(areader))
  18. {
  19. while (reader.Read(0))
  20. {
  21. string value;
  22. if (reader.GetEmptyElementValue("filename", out value))
  23. {
  24. args.FileName = value;
  25. }
  26. else if (reader.GetEmptyElementValue("permissions", out value))
  27. {
  28. args.FilePermissions = FilePermissions.CreateReadOnlyFromText(value);
  29. }
  30. else if (SessionRemoteException.IsResult(reader))
  31. {
  32. args.Error = SessionRemoteException.ReadResult(reader);
  33. }
  34. }
  35. }
  36. return args;
  37. }
  38. }
  39. }