Example #1
0
 public void Start(VFSProvider data, MountOptions opts)
 {
     this.data = data;
     base.MountPoint = opts.MountPoint;
     logger.Debug ("Unmounting previous...");
     Process p = new Process {
         StartInfo = new ProcessStartInfo {
             FileName = "fusermount",
             Arguments = "-u " + base.MountPoint
         }
     };
     p.Start ();
     p.WaitForExit ();
     logger.Debug ("Done. Mounting...");
     base.Start ();
 }
Example #2
0
 public void Start(VFSProvider data, MountOptions opts)
 {
     this.data = data;
     DokanOptions dokanOpts = new DokanOptions () {
         DebugMode = true,
         UseStdErr = true,
         MountPoint = opts.MountPoint,
         VolumeLabel = opts.VolumeLabel,
         FileSystemName = opts.FileSystemName
     };
     int status = DokanNet.DokanMain (dokanOpts, this);
     switch (status) {
     case DokanNet.DOKAN_SUCCESS:
         logger.Debug ("Clean shutdown");
         break;
     case DokanNet.DOKAN_DRIVE_LETTER_ERROR:
         logger.Fatal ("Drive letter error");
         break;
     case DokanNet.DOKAN_DRIVER_INSTALL_ERROR:
         logger.Fatal ("Driver install error");
         break;
     case DokanNet.DOKAN_MOUNT_ERROR:
         logger.Fatal ("Mount error");
         break;
     case DokanNet.DOKAN_START_ERROR:
         logger.Fatal ("Start error");
         break;
     case DokanNet.DOKAN_ERROR:
         logger.Fatal ("Unknown error");
         break;
     default:
         logger.Fatal ("Unknown status: %d", status);
         break;
     }
 }