I downloaded a winrar file, and it contained a directory, the directory name is '福', and there are some other files in the winrar. When I double click the winrar file, I opened the winrar. When I drag the '福' directory to Directory Opus 9.0.0.6, I got a error Msg "Error while moving '福2', system can not fiind the file". It seemed that the Directory Opus add a '2' after '福'。 I tryed some other files and found that the Directory Opus sometimes would add some characters such as '2', 'nts', etc. after the directory name that cause the move failed.
Would you please tell me how to resolve this problem ?
I created a directory '福' containing the file test.txt and tried to zip the directory with Directory Opus 9.0.0.8
to reproduce the error posted above, but I got this error message:
I just remembered another thread on this problem which suggests it is a bug in WinRAR.
Nosh's reply says that WinRAR sends drag & drop messages using ANSI filenames so it isn't doing the right thing with Unicode characters. It still works (most of the time) in Explorer because Explorer has a workaround where it uses wildcard matching to find the file that WinRAR probably meant. If two filenames match the wildcard then it's going to be random which one you get so IMO this is something that should be fixed in WinRAR rather than changed in Opus.
It works in Explorer because if Explorer is passed a filename with ? characters it does a wildcard search on the directory to find the file which was probably the one which was dropped.
Opus doesn't do that, and IMO relying on that mechanism is a bad idea. (What if some other file matches the same wildcard? If the filenames are all Unicode characters then the drop message will be something like ????.jpg and any other file in the directory which also has a four-character name before the extension is a potential match.)
WinRAR should be fixed to generate correct Unicode drag & drop messages.
Has anyone reported the problem to RarLabs? My bet is that it would be really easy for them to fix this and it's probably something they simply haven't noticed or had pointed out. If WinRAR uses Unicode internally then they simply need to call IsUnicodeWindow on the drop target and, if it returns true, send a different window message with the Unicode string instead of the ANSI version. It's most likely a 5 minute fix.