List the files in a folder.
# Metadata
Platforms: desktop, server, mobile OS: mac, windows, linux, ios, android, web Introduced: 1.0 Security: disk
# Syntax
the [{ detailed | long }] files
# Params
- targetFolder : The folder path to search. - outputKind :
# Examples
put files(specialFolderPath("documents")) into field "Current Docs" sort lines of field "Current Docs" international
local tTotalSize repeat for each line tFileInfo in the detailed files add item 3 of tFileInfo to tTotalSize end repeat answer merge("The files in the current folder use" && \ "tTotalSize bytes")
local tDiskContents put the files & return & the folders into \ tDiskContents["the defaultFolder"] filter tDiskContents["the defaultFolder"] without ".."
# Description
Return a list of files in the targetFolder, with one file per line. If no targetFolder is specified, list the files in the current folder.
alias (on OS X systems), symbolic links (on Linux systems) and shortcuts (on Windows systems) are included in the list only if they refer to a file.
> *Note:* The order that files are listed is platform-dependent. The > order may vary between platforms, between filesystems, > and even between consecutive calls to the files function. If you > need a sorted list, use the sort command.
### Short form
When the files is called as a function, or without the `long` or `detailed` modifiers, it returns only the file names as a string with one file name per line.
> *Note:* On some platforms, file names are permitted to > include the return character. Such a file name > would be split across more than one line of the string returned by > the files function.
### Long form
`the long files` and `the detailed files` are synonyms. When the files function is called in this form, the return value is a list of files with detailed file attributes.
Each line in the return value is a comma-separated list of file attributes, as follows:
1. **Name**. The file 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. On OS X systems, this is the size of the data fork. 3. **Resource fork size**, in bytes. (OS X only). 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 fileType**. (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".
# Tags
# See
- **property:** 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, symbolic link