Example #1
0
 public void DeleteFile(string path)
 {
     InitializeIfNeed();
     if (_manager.TryGetTarget(out var manager))
     {
         var request  = new EfsUnlinkFileCommandRequest(path);
         var response = (EfsUnlinkFileCommandResponse)manager.ExecuteQcdmCommandRequest(request);
         QcdmEfsErrorsUtils.ThrowQcdmEfsErrorsIfNeed(response.Error);
     }
 }
Example #2
0
 public void Close()
 {
     if (IsOpen)
     {
         CheckManager();
         var request  = new EfsCloseDirectoryCommandRequest(_directory);
         var response = (EfsCloseDirectoryCommandResponse)_manager.ExecuteQcdmCommandRequest(request);
         QcdmEfsErrorsUtils.ThrowQcdmEfsErrorsIfNeed(response.Error);
         _directory = -1;
     }
 }
Example #3
0
        private DirectoryEntry GetEntry(int index)
        {
            var request  = new EfsReadDirectoryCommandRequest(_directory, index);
            var response = (EfsReadDirectoryCommandResponse)_manager.ExecuteQcdmCommandRequest(request);

            if (response.Error == QcdmEfsErrors.InvalidSequence)
            {
                return(null);
            }
            QcdmEfsErrorsUtils.ThrowQcdmEfsErrorsIfNeed(response.Error);
            return(response.DirectoryEntry);
        }
Example #4
0
 public void DeleteDirectory(string path)
 {
     InitializeIfNeed();
     if (_manager.TryGetTarget(out var manager))
     {
         var request  = new EfsRemoveDirectoryCommandRequest(path);
         var response = manager.ExecuteQcdmCommandRequest <EfsRemoveDirectoryCommandResponse>(request);
         if (response != null)
         {
             QcdmEfsErrorsUtils.ThrowQcdmEfsErrorsIfNeed(response.Error);
         }
     }
 }
Example #5
0
 public void PutItemFile(string path, EfsFileFlag flags, int permission, byte[] data)
 {
     InitializeIfNeed();
     if (_manager.TryGetTarget(out var manager))
     {
         if (manager.IsOpen)
         {
             var request  = new EfsPutItemFileCommandRequest(path, flags, permission, data);
             var response = (EfsPutItemFileCommandResponse)manager.ExecuteQcdmCommandRequest(request);
             QcdmEfsErrorsUtils.ThrowQcdmEfsErrorsIfNeed(response.Error);
         }
     }
 }
Example #6
0
 public void SyncNoWait(string path, ushort sequence)
 {
     InitializeIfNeed();
     if (_manager.TryGetTarget(out var manager))
     {
         if (manager.IsOpen)
         {
             var request  = new EfsSyncNoWaitCommandRequest(path, sequence);
             var response = (EfsSyncNoWaitCommandResponse)manager.ExecuteQcdmCommandRequest(request);
             QcdmEfsErrorsUtils.ThrowQcdmEfsErrorsIfNeed(response.Error);
         }
     }
 }
Example #7
0
 public void CreateDirectory(string path, ushort mode)
 {
     InitializeIfNeed();
     if (_manager.TryGetTarget(out var manager))
     {
         var request  = new EfsMakeDirectoryCommandRequest(mode, path);
         var response = (EfsMakeDirectoryCommandResponse)manager.ExecuteQcdmCommandRequest(request);
         if (response.Error != QcdmEfsErrors.DirectoryExist)
         {
             QcdmEfsErrorsUtils.ThrowQcdmEfsErrorsIfNeed(response.Error);
         }
     }
 }
Example #8
0
 public void CheckAccess(string path, byte permissionBits)
 {
     InitializeIfNeed();
     if (_manager.TryGetTarget(out var manager))
     {
         if (manager.IsOpen)
         {
             var request  = new EfsAccessCommandRequest(path, permissionBits);
             var response = (EfsAccessCommandResponse)manager.ExecuteQcdmCommandRequest(request);
             QcdmEfsErrorsUtils.ThrowQcdmEfsErrorsIfNeed(response.Error);
         }
     }
 }
Example #9
0
 public void RenameFile(string path, string newPath)
 {
     InitializeIfNeed();
     if (_manager.TryGetTarget(out var manager))
     {
         if (manager.IsOpen)
         {
             var request  = new EfsRenameFileCommandRequest(path, newPath);
             var response = (EfsRenameFileCommandResponse)manager.ExecuteQcdmCommandRequest(request);
             QcdmEfsErrorsUtils.ThrowQcdmEfsErrorsIfNeed(response.Error);
         }
     }
 }