berealize / dokan

Automatically exported from code.google.com/p/dokan
0 stars 0 forks source link

make new file option missing in explorer #218

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Mount a dokan file system
2. In explorer open the dokan drive
3. right click -> New, I only get "New Folder" Option and not the usual:
New Folder
Shortcut
Text Document
etc etc

What is the expected output? What do you see instead?
right click -> New:
New Folder
Shortcut
Text Document
etc etc

What version of the product are you using? On what operating system?
Dokan-0.6.0 & .NET 0.6.0 on Windows 7 64bit

Original issue reported on code.google.com by ehM.D...@gmail.com on 31 Mar 2011 at 12:44

GoogleCodeExporter commented 9 years ago
This seems to be a windows 7 issue. I ran my file system on windows 7 and the 
new file options are not available. I then ran it on windows xp and the options 
were available. Both used Dokan 0.6.0 and dokan.Net 0.6.0, only change was the 
OS.

Original comment by cbuco...@gmail.com on 30 Jun 2011 at 6:48

GoogleCodeExporter commented 9 years ago
I've got the same problem on Windows 7. Moreover, Boxcryptor that uses Dokan 
lib does't have this issue, please help.

Original comment by djcor...@gmail.com on 29 Jul 2011 at 11:04

GoogleCodeExporter commented 9 years ago
Maybe I can help here a little: A workaround is to use DOKAN_OPTION_REMOVABLE 
while mounting the volume. (C#: set DokanOptions.RemovableDrive = true).

The problem seems to be with the handling of the security functions which 
Windows7 requires. The methods "GetFileSecurity" and "SetFileSecurity" which 
exist in the dokan library are not yet ported to the .NET-Wrapper. I tried that 
myself with little success (ran out of time ;-)). In conjunction with that two 
functions you'll have to port a dozen other Win32 functions and structs to make 
that successfully work. Maybe I'll get to it later or someone other has more 
success...

Happy workarounding!

Original comment by theus...@gmail.com on 3 Aug 2011 at 6:27

GoogleCodeExporter commented 9 years ago
You could use FileSecurity object ,get byte array by caling GetDescriptorBinary 
form then use Marsal to copy it to descriptor pointer. If security descriptor 
buffer lenght is less than array's lenght return ERROR_INSUFICIENT_BUFFER snd 
set lenght needed to array's lenght.

Original comment by mladenov...@gmail.com on 3 Aug 2011 at 7:12

GoogleCodeExporter commented 9 years ago
This is related to issue 209: Where I have solved it and this issue.
I have completely removed the code that used to PInvoke down to Win32 calls, 
and in so doing, also fixed the calls into SACL_SECURITY_INFORMATION. I use 
nothing but C# and also impersonate the user to ensure accurate results.
This works on all OS's :-}
The history for both the PInvoke, and the C# implementations are in my GPL 
project @ http://Liquesce.codeplex.com

Original comment by smurf...@gmail.com on 24 Nov 2011 at 8:02

GoogleCodeExporter commented 9 years ago
I have been having this issue with my own filesystem, in this case with native 
code. 

I have found that Explorer is very particular about the returned 
SECURITY_DESCRIPTOR being self-relative. So in cases where you are creating 
your own SECURITY_DESCRIPTOR, make sure to do a MakeSelfRelativeSD before you 
return it!

Original comment by kim.skog...@gmail.com on 10 Oct 2014 at 9:44