WinMerge / winmerge

WinMerge is an Open Source differencing and merging tool for Windows. WinMerge can compare both folders and files, presenting differences in a visual text format that is easy to understand and handle.
https://winmerge.org/
GNU General Public License v2.0
6.37k stars 789 forks source link

Cannot create folder - while comparing two archives #1184

Open d0vgan opened 2 years ago

d0vgan commented 2 years ago

WinMerge 64-bit version 2.16.18 on Windows 10 Pro 20H2. Shows "Cannot create folder" while comparing two identical zip-archives.

Steps to reproduce:

  1. Download "AshesEp1_2063_V2_2.zip" from this site: https://www.moddb.com/mods/ashes-2063/downloads/ashes-episode-1ashes-2063pk3-only-v22
  2. Unpack the file "Ashes2063Enriched2_2.pk3" to some folder
  3. Copy the just unpacked "Ashes2063Enriched2_2.pk3" to some different folder
  4. Run WinMerge against these two files "Ashes2063Enriched2_2.pk3"
  5. WinMerge reports the following:
    Cannot create folder : C:\Users\DV\AppData\Local\Temp\WinMerge_TEMP_3732\00000029\Textures
    Cannot open output file : Системе не удается найти указанный путь. : C:\Users\DV\AppData\Local\Temp\WinMerge_TEMP_3732\00000029\Textures\RJMURICA
    Cannot open output file : Системе не удается найти указанный путь. : C:\Users\DV\AppData\Local\Temp\WinMerge_TEMP_3732\00000029\Textures\RJDUMGAG
    Cannot open output file : Системе не удается найти указанный путь. : C:\Users\DV\AppData\Local\Temp\WinMerge_TEMP_3732\00000029\Textures\AMBBACK
    Cannot open output file : Системе не удается найти указанный путь. : C:\Users\DV\AppData\Local\Temp\WinMerge_TEMP_3732\00000029\Textures\AMBFRONT
    ...

    I assume it is because the "Ashes2063Enriched2_2.pk3" contains a file with a name "TEXTURES" (in capital) and a folder with a name "Textures" (Camel case). Looks like the zip-archive supports UNIX-like file system (treating file names with different case as separate files) whereas Windows files system does not support this. Could WinMerge somehow handle such situation (by e,g, auto-renaming the conflicting names)?

sdottaka commented 2 years ago

Could WinMerge somehow handle such a situation (by e,g, auto-renaming the conflicting names)?

Unfortunately, WinMerge does not have that auto-renaming feature.

WinMerge uses the 7-Zip DLL to extract the zip file. Extracting that file with 7-Zip will cause the same error, but if there is a way to avoid the error with 7-Zip, it may be possible to avoid the error with WinMerge.