Hi, guys ... I use cp to backup source systems to an external drive. It works great (and the --update=number function is a key differentiator). However, I noticed that (for NTFS file systems) long directory names (\abc\def\ghi\jkl\mno\pqrstuvwxyz\blahblah\longlonglongdirectorystring) are not supported (they throw "no such file or directory errors"). I assume you're making an assumption on a max static var size (i.e., szDirectory[100]) ... can you either up that allocation or malloc() the memory to the input string? I believe the NTFS fully-cascading filename limit is 32,000 characters.
(actual example):