Bei mir funktionierte dieser Code damals wunderbar. Ressourcen sind
IMHO immer UpperCase, auch wenn du sie nicht UpperCase speicherst. Der Name, den du ausließt wird wieder in Großbuchstaben sein.
Warum die letzte Datei bei dir immer 0 Byte ist kann ich dir nicht sagen, wohl aber, dass man diesen Joiner um einiges verbessern kann, indem man zusätzlich eine Datei mit allen Dateipfäden / Dateinamen anhängt, anhand derer die Dateien dann richtig benannt und in andere Verzeichnisse als C: kopiert werden können. (Man könnte sie evtl. auch noch ausführen lassen oder sowas wie {APPDATA} als Umgebungsvariablen im Pfadnamen zulassen)