@b-s-ger Out of curiosity... does this script copy faster? It uses the Windows FileSystemObject and simply copies the selection in the source to the destination.
function OnClick(clickData) {
var cmd = clickData.func.command;
var tab = clickData.func.sourcetab;
var dtab = clickData.func.desttab;
var currLister = DOpus.listers.lastactive;
var fso = new ActiveXObject('Scripting.FileSystemObject');
cmd.deselect = false;
if (currLister.dual == 0) return;
if (dtab.path.drive == 0) return;
if (String(tab.path) == String(dtab.path)) return;
cmd.RunCommand('Set UTILITY=otherlog');
DOpus.ClearOutput();
DOpus.Output('Enumerating...\n');
var dest = String(dtab.path) + '\\';
for (var e = new Enumerator(tab.selected); !e.atEnd(); e.moveNext()) {
var item = e.item();
var source = String(item.realpath);
DOpus.Output(source);
if (item.is_dir) {
fso.CopyFolder(source, dest);
} else {
fso.CopyFile(source, dest);
}
}
DOpus.Output('\n... done.');
}
Button as XML
<?xml version="1.0"?>
<button backcol="none" display="both" textcol="none">
<label>fso Copy</label>
<icon1>#copy</icon1>
<function type="script">
<instruction>@script JScript</instruction>
<instruction>function OnClick(clickData) {</instruction>
<instruction> var cmd = clickData.func.command;</instruction>
<instruction> var tab = clickData.func.sourcetab;</instruction>
<instruction> var dtab = clickData.func.desttab;</instruction>
<instruction> var currLister = DOpus.listers.lastactive;</instruction>
<instruction> var fso = new ActiveXObject('Scripting.FileSystemObject');</instruction>
<instruction />
<instruction> cmd.deselect = false;</instruction>
<instruction />
<instruction> if (currLister.dual == 0) return;</instruction>
<instruction> if (dtab.path.drive == 0) return;</instruction>
<instruction> if (String(tab.path) == String(dtab.path)) return;</instruction>
<instruction />
<instruction> cmd.RunCommand('Set UTILITY=otherlog');</instruction>
<instruction> DOpus.ClearOutput();</instruction>
<instruction> DOpus.Output('Enumerating...\n');</instruction>
<instruction> </instruction>
<instruction> var dest = String(dtab.path) + '\\';</instruction>
<instruction> </instruction>
<instruction> for (var e = new Enumerator(tab.selected); !e.atEnd(); e.moveNext()) {</instruction>
<instruction> var item = e.item();</instruction>
<instruction> var source = String(item.realpath);</instruction>
<instruction> DOpus.Output(source);</instruction>
<instruction> if (item.is_dir) {</instruction>
<instruction> fso.CopyFolder(source, dest);</instruction>
<instruction> } else {</instruction>
<instruction> fso.CopyFile(source, dest);</instruction>
<instruction> }</instruction>
<instruction> }</instruction>
<instruction />
<instruction> DOpus.Output('\n... done.');</instruction>
<instruction>}</instruction>
</function>
</button>