folders

Typefunction
DictionaryLCS
LibraryLiveCode Script
Syntax
the [{ detailed | long }] folders
folders([<targetFolder>[, <outputKind>]])
Summary

List the subfolders in a folder.

Introduced1.0
Changes

The long form was introduced in version 1.1. The optional targetFolder argument for the function call form was introduced in version 8.1. The detailed-utf8 form was introduced in version 9.6.

OSmac, windows, linux, ios, android, web
Platformsdesktop, server, mobile
Parameters
NameTypeDescription
targetFolder

The folder path to search.

outputKindempty: Use the short form
"detailed": Use the long/detailed form (deprecated)
"detailed-utf8": Use the long/detailed form encoding folder names as UTF8 before URL-encoding.
Example
put folders(specialFolderPath("documents")) into \
      field "Available Folders"
filter lines of field "Available Folders" without ".."
sort lines of field "Available Folders" international
local tDiskContents
put the files & return & the folders into \
      tDiskContents["the defaultFolder"]
filter tDiskContents["the defaultFolder"] without ".."
Values
NameTypeDescription
return

A list of folder names or folder information, with one file per line.

RelatedProperty: defaultFolder, umask
Constant: return
Keyword: long
Command: sort
Function: folders, specialFolderPath, URLDecode, textDecode
Glossary: alias, current folder, data fork, folder, function, platform, return, resource fork, shortcut, subfolder, symbolic link
Securitydisk
Description

Return a list of folders in the targetFolder, with one file per line. If no targetFolder is specified, list the files in the current folder.

The list only includes folders at the top level of the targetFolder. The folders function does not recursively enter and examine folders deeper in the filesystem. To examine the contents of a subfolders, either pass its path as the targetFolder, or temporarily set the defaultFolder.

Files are not included in the list. To get a list of files, use the files function.

Aliases (on OS X systems), symbolic links|symbolic links (on Linux systems) and shortcuts (on Windows systems) are included in the list only if they refer to a folder.

Important: The list returned by the folders contain a ".." entry representing the link to the parent folder. Care must be taken to filter this entry out to prevent infinite loops and security vulnerabilities.

Note: The order that folders are listed is platform-dependent. The order may vary between platforms, between filesystems, and even between consecutive calls to the folders function. If you need a sorted list, use the sort command.

Short form

When the folders is called as a function, or without the long or detailed modifiers, it returns only the folder names as a string with one file name per line.

Note: On some platforms, folder names are permitted to include the linefeed character. Such a folder name would be split across more than one line of the string returned by the folders function.

Long form

the long folders and the detailed folders are synonyms. When the folders function is called in this form, the return value is a list of folders with detailed file attributes. Several of the attributes are provided only for compatibility with the files function and do not have any meaning for a folder.

Each line in the return value is a comma-separated list of file attributes, as follows:

  1. Name. The folder name is URL-encoded. To reliably obtain the name use the detailed-utf8 outputKind and decode using the URLDecode function followed by textDecode. For example, textDecode(URLDecode(item 1 of tLine), "utf8").
  2. Size, in bytes. This is always 0.
  3. Resource fork size, in bytes. This is always 0.
  4. Creation date, in seconds. (OS X and Windows only).
  5. Last modification date, in seconds.
  6. Last access date, in seconds.
  7. Last backup date, in seconds.
  8. User owner. (Linux and OS X only).
  9. Group owner. (Linux and OS X only).
  10. Permissions. (Linux and OS X only; see note).
  11. Creator and file type. (OS X only).

Any attribute that is not relevant to the current platform is left empty.

The access permissions consist of three octal digits, in the same form used for the umask property.

Note: On Windows, the permissions are always reported as "777".

The creator and file type are always "????????".

Tagsfile system