Exemplo n.º 1
0
 public int OpenDirectory(string filename, DokanFileInfo info)
 {
     lock (_syncObj)
     {
         VirtualFileSystemResource resource = ParseFileName(filename);
         if (resource == null || !(resource is VirtualBaseDirectory))
         {
             return(-DokanNet.ERROR_PATH_NOT_FOUND);
         }
         FileHandle handle = new FileHandle(resource);
         info.Context = handle;
         resource.AddFileHandle(handle);
         return(DokanNet.DOKAN_SUCCESS);
     }
 }
Exemplo n.º 2
0
 public int CreateFile(string filename, FileAccess access, FileShare share, FileMode mode, FileOptions options, DokanFileInfo info)
 {
     lock (_syncObj)
     {
         VirtualFileSystemResource resource = ParseFileName(filename);
         if (resource == null)
         {
             return(-DokanNet.ERROR_FILE_NOT_FOUND);
         }
         FileHandle handle = new FileHandle(resource);
         info.Context = handle;
         resource.AddFileHandle(handle);
         if (resource is VirtualBaseDirectory)
         {
             info.IsDirectory = true; // Necessary for the Dokan driver to set this, see docs
         }
         return(DokanNet.DOKAN_SUCCESS);
     }
 }
Exemplo n.º 3
0
 public NtStatus CreateFile(string filename, FileAccess access, FileShare share, FileMode mode, FileOptions options, FileAttributes attributes, DokanFileInfo info)
 {
     lock (_syncObj)
     {
         VirtualFileSystemResource resource = ParseFileName(filename);
         if (resource == null)
         {
             return(DokanResult.Error);
         }
         FileHandle handle = new FileHandle(resource);
         info.Context = handle;
         resource.AddFileHandle(handle);
         if (resource is VirtualBaseDirectory)
         {
             info.IsDirectory = true;
         }
         return(DokanResult.Success);
     }
 }