How do you sort items without sorting them?
Posted: 16 Jan 2016 12:31
Is there any way to retrieve the itemlist sorted by some criteria, without actually applying the sort-order to the list pane?
Forum for XYplorer Users and Developers
https://www.xyplorer.com/xyfc/
Code: Select all
$items = folderreport("files:{size RAW}|{fullname}", "r", , , , "<crlf>");
$items = formatlist($items, "n", "<crlf>");
$items = regexreplace($items, "^(\d+\|)(.*)", "$2");
text $items;Code: Select all
text sortFiles(, "created", "d");
/*
$path = For which part to report (default = "<curpath>")
$criteria = size (default) | created (date) | modified (date)
$order = "a" (ascending, default), "d" (descending)
$flags = "r" (default) -> recursive or ""
$delim = How should the output be delimited (default = "new line")
*/
function sortFiles($path = "<curpath>", $criteria = "size", $order = "a", $flags = "", $delim = "<crlf>") {
if ($criteria LikeI "size") { $criteria = "size RAW"; }
elseif ($criteria LikeI "created") { $criteria = "created yyyymmddhhnnss"; }
elseif ($criteria LikeI "modified") { $criteria = "modified yyyymmddhhnnss"; }
if ($order LikeI "a") { $order = "n"; }
elseif ($order LikeI "d") { $order = "nr"; }
$items = folderreport("files:{$criteria}|{fullname}", "r", "$path", "$flags", , "<crlf>");
$items = formatlist($items, "$order", "<crlf>");
$items = regexreplace($items, "^(\d+\|)(.*)", "$2");
return regexreplace($items, "\r?\n", $delim);
}