dokan-dev / dokany

User mode file system library for windows with FUSE Wrapper
http://dokan-dev.github.io
5.2k stars 661 forks source link

File disappears from the Explorer window. #1111

Closed onexzero closed 1 year ago

onexzero commented 1 year ago

disappear.LOG Feature request can skip this form. Bug report must complete it. Check List must be 100% match or it will be automatically closed without further discussion. Please remove this line.

Environment

Check List

Description

When the mount manager is activated, if the file cannot be put into the recycle bin, a deletion confirmation dialog is displayed. At this point, you haven't hit the delete button yet, but the file disappears from the explorer window. This phenomenon appears regardless of the dokany version. The same goes for Fuse. The actual file is not deleted and reappears when you refresh the explorer.

I ran mirror.exe as below.

mirror /o /r C:\Users\Raccoon\Desktop\Temp /l r:

A screen capture is attached.

https://user-images.githubusercontent.com/31300523/191926428-04531e95-c922-45d3-a240-e3a26c9a26d3.mp4

Logs

Please attach in separate files: mirror output, library logs and kernel logs. In case of BSOD, please attach minidump or dump analyze output.

onexzero commented 1 year ago

disappear.LOG

Liryna commented 1 year ago

Hi @onexzero ,

Thanks for the report. What happens is that we get two FileDispositionInformation, one for deleting the file and the other one to undo the delete request right after. The first one will notify the delete action to the system and make the file disappear here while the second one does not notify the file being back. Anyway, we just should notify on cleanup when the delete happens.

00001618    12:32:15 PM [5680] ###SetFileInfo file handle = 0x00000212030EB170, eventID = 0136, FileInformationClass = 13, event Info = 0x0000021203036850  
00001619    12:32:15 PM [5680] GetFileInfo : C:\Users\Raccoon\Desktop\Temp\android-x86-5.1-rc1.iso  
00001620    12:32:15 PM [5680]  GetFileInformationByHandle success, file size = 375390208   
00001621    12:32:15 PM [5680] FILE ATTRIBUTE  = 32 
00001622    12:32:15 PM [5680] DeleteFile C:\Users\Raccoon\Desktop\Temp\android-x86-5.1-rc1.iso - 1 
00001623    12:32:15 PM [5680]   dispositionInfo->DeleteFile = 1    
00001624    12:32:15 PM [5680]  DispatchSetInformation result =  0  
00001625    12:32:15 PM [5680] Dokan Information: SendAndPullEventInformation() with NTSTATUS 0x0, context 0x30eb170, and result object 0x0000021203111790 with size 48 
00001626    12:32:15 PM [5680] ###SetFileInfo file handle = 0x00000212030EB170, eventID = 0136, FileInformationClass = 13, event Info = 0x0000021203036850  
00001627    12:32:15 PM [5680] DeleteFile C:\Users\Raccoon\Desktop\Temp\android-x86-5.1-rc1.iso - 0 
00001628    12:32:15 PM [5680]   dispositionInfo->DeleteFile = 0    
00001629    12:32:15 PM [5680]  DispatchSetInformation result =  0  
00001630    12:32:15 PM [5680] Dokan Information: SendAndPullEventInformation() with NTSTATUS 0x0, context 0x30eb170, and result object 0x0000021203111790 with size 48 
00001631    12:32:15 PM [5680] ###Cleanup file handle = 0x00000212030EB170, eventID = 0136, event Info = 0x0000021203036850 
00001632    12:32:15 PM [5680] Cleanup: C:\Users\Raccoon\Desktop\Temp\android-x86-5.1-rc1.iso   
00001633    12:32:15 PM [5680]  
00001634    12:32:15 PM [5680] Dokan Information: SendAndPullEventInformation() with NTSTATUS 0x0, context 0x30eb170, and result object 0x0000021203111790 with size 48 
00001635    12:32:15 PM [5680] ###Close file handle = 0x00000212030EB170, eventID = 0136, event Info = 0x0000021203036850   
00001636    12:32:15 PM [5680] Close: C:\Users\Raccoon\Desktop\Temp\android-x86-5.1-rc1.iso 
Liryna commented 1 year ago

Fixed with https://github.com/dokan-dev/dokany/commit/8e2d78ffc9a2d424bcd49bad43beb8d9532a9168. @onexzero could you try the new release 2.0.6 ?

onexzero commented 1 year ago

Thank you @Liryna I tested and it worked!!!

Liryna commented 1 year ago

Thanks for the confirmation and the report 👍