Archive: nsis COPYFILES seems to have 8.3 filename limit


nsis COPYFILES seems to have 8.3 filename limit
I was using COPYFILES in a script, and came across unexpected behavior ... it truncated InvPsgStats.xml to InvPsgSt.xml

This would seem to indicate that COPYFILES only deals with 8.3 filenames. Did I do something wrong? Is this left-over from the bad old days?

TIA from a big NSIS fan :-)

***************
; Put files there
CopyFiles /SILENT /FILESONLY InvPsgStats.sav InvPsgStats.xml 30
File InvPsgStats.xml
File InvPsgInfo.xml
File ChangeLog.html


ParaClete,

I tested the CopyFiles with some long file names. At my Win2K machine it seemed to work fine...

So I think it's not the CopyFiles, but maybe there's something wrong on the destination machine...


Good luck,
greetz, Hendri.


It's a Microsoft problem
I also encountered this problem once on one computer (using NSIS 2.11). I looked around, and this is what I found:

NSIS implements the CopyFiles instruction with a call to Win32 Shell API function SHFileOperation. This function suffers from the following bug:

http://support.microsoft.com/kb/q186152/

(Note that according to Microsoft "This behavior is by design", but personally I don't believe them.)

A workaround would be to fix the copying mechanism to in exehead/exec.c to retrieve the full pathname of the destination before passing it to SHFileOperation.

dubek.