What is the order when calling a directory?

1 view (last 30 days)
I call a directory which is a folder cotaining several files and then I use for loop to do specific calculatuions on each file in that folder.
I wanted to know in what order does matlab parse each of those files (by alphabette?size?)? and can user detremine the order?
  1 Comment
Rik
Rik on 14 Oct 2019
You mean the output order for dir? For uigetdir?

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 14 Oct 2019
Edited: Walter Roberson on 14 Oct 2019
MATLAB uses whatever order is returned by the operating system.
It happens that in MS Windows, and MacOS, and Linux, that the operating system does not impose an order. Instead, the operating system leaves it up to the file system driver, so the order for NTFS could be different than the order for FAT16 for example.
I have not found any documentation on the order used by NTFS. In practice it appears to sort either by byte code representation of the name or else by unicode code point. Apple's HFS+ has an ordering based upon "fully decomposed canonical representation" in theory but in practice the ordering apparently has some bugs. Most of the Linux file systems do not define an order, and I recently encountered a claim that one of the Linux file systems sorts according to a hash of a file name.
The user has no control over the order in any of the operating systems.
You might want to look in the File Exchange for "natural filename sort".

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!