Topics   All   MacOS (Only)   Windows (Only)   Linux (Only, Not)   iOS (Only, Not)  
Components   Crossplatform Mac & Win   Server   Client   Old   Deprecated   Guides   Examples   Videos
New in version: 11.0   11.1   11.2   11.3   11.4   11.5   12.0   12.1   12.2   12.3    Statistic    FMM    Blog  

Files.List

Queries list of file names in folder.

Component Version macOS Windows Linux Server iOS SDK License
Files 2.8 ✅ Yes ✅ Yes ✅ Yes ✅ Yes ✅ Yes Paid
MBS( "Files.List"; Path { ; filter; ExtensionFilter } )   More

Parameters

Parameter Description Example Flags
Path Native path to the directory. "C:\Test"
filter Optional, limits what is returned. Default is 0 to report all files. Pass a combination of 1 for showing only files, 2 for showing only directories and 4 for showing only visible items.
Add 8 if the path includes the file name specification with wildcards.
Combined pass 4+1 for visible files or 2+1 for visible directories.
5 Optional
ExtensionFilter Optional, a filter for getting only files with matching file extension. ".txt" Optional

Result

Returns list of files separated by return.

Description

Queries list of file names in folder.
The list of names is separated by new line character.
This function needs a native path. Please use Path.FileMakerPathToNativePath function in order to convert a FileMaker style path to a native path.
With filter parameter being 8 on Windows, you can pass a path with wildcards directly and ExtensionFilter parameter is ignored. This is not supported on macOS.

See also Files.ListRecursive. You can filter result with List.MatchesPostfix to get list with one file extension only.

If you need sorting, please check List.Sort function. Also use List.RemovePrefix or List.RemovePostfix to filter list further.

Examples

Queries files in Users folder on Mac:

$files = MBS("Files.List"; "/Users")

Queries visible files in windows folder:

$files = MBS("Files.List"; "c:\\Windows\\"; 5)

Queries DLL files in windows folder:

$files = MBS("Files.List"; "c:\\Windows\\"; 0; ".dll")

Queries Applications with name starting with e in windows folder:

$files = MBS("Files.List"; "c:\\Windows\\e*.exe"; 8)

Find FileMaker databases in a folder:

MBS("Files.List"; "c:\\Users\\Christian\\Desktop"; 0; ".fmp12")

Query all file names and sizes for files on desktop:

While(
[
    names = "";
    // query list of visible files on desktop
    folder = MBS("Folders.UserDesktop");
    list = MBS( "Files.List"; folder; 1+4 );
    count = ValueCount(list);
    index = 1
] ;
    index ≤ count ;
[
    filename = GetValue(list; index);
    filepath = MBS("Path.AddPathComponent"; folder; filename);
    // query size for each file
    size = MBS( "Files.FileSize"; filepath);
    names = names & filename & " -> " & size & ¶;
    index = index + 1
] ;
// return all the names
names )

Example result:
test.zip -> 834
test.rtf -> 400

See also

Release notes

  • Version 12.2
    • Fixed Files.List to better check directory status on macOS using alternative code path.
  • Version 11.5
    • Fixed Files.ListAsJSON to query date and size of a symlink instead of the target.
  • Version 10.5
  • Version 8.4
  • Version 7.3
    • Added new flag for Files.ListRecursive to ignore invisible folders and better check for hidden elements.
  • Version 7.1

Example Databases

Blog Entries

Created 18th August 2014, last changed 14th June 2022


Files.LaunchFile - Files.ListAsJSON

Feedback: Report problem or ask question.


Start Chat