love.filesystem

Provides an interface to the user's filesystem.

This module provides access to Files in two places, and two places only:

  • The root folder of the .love-file. (Alternatively a directory).
  • The root folder of the write directory.

Each game is granted a single directory on the system where files can be saved through love.filesystem. This is the only directory where love.filesystem can write files. These directories will typically be found in something like:

  • Windows XP: C:\Documents and Settings\user\Application Data\Love\ or %appdata%\Love\
  • Windows Vista and 7: C:\Users\user\AppData\Roaming\LOVE or %appdata%\Love\
  • Linux: $XDG_DATA_HOME/love/ or ~/.local/share/love/
  • mac: /Library/Application Support/LOVE/

Files that are opened for write or append will always be created in the save directory. The same goes for other operations that involve writing to the filesystem, like mkdir.

Files that are opened for read will be looked for in the save directory, and then in the game root folder (in that order). So if a file with a certain filename (and path) exist in both the .love-file and the save folder, the one in the save directory takes precedence.

Note: All paths are relative to the .love and save directory. (except for the get*Directory() calls)

It is recommended to set your game's identity first in your conf.lua. You can set it with love.filesystem.setIdentity() as well.

Types

DroppedFileRepresents a file dropped from the window.

Functions

love.filesystem.appendAppend data to an existing file.
love.filesystem.areSymlinksEnabledGets whether love.filesystem follows symbolic links.
love.filesystem.createDirectoryCreates a directory.
love.filesystem.getCRequirePathGets the filesystem paths that will be searched for c libraries when require is called.
love.filesystem.getDirectoryItemsReturns all the files and subdirectories in the directory.
love.filesystem.getIdentityGets the write directory name for your game.
love.filesystem.getInfoGets information about the specified file or directory.
love.filesystem.getLastModifiedGets the last modification time of a file.
love.filesystem.getRealDirectoryGets the absolute path of the directory containing a filepath.
love.filesystem.getRequirePathGets the filesystem paths that will be searched when require is called.
love.filesystem.getSizeGets the size in bytes of a file.
love.filesystem.getSourceReturns the full path to the .love file or directory.
love.filesystem.getSourceBaseDirectoryReturns the full path to the directory containing the .love file.
love.filesystem.isFusedGets whether the game is in fused mode or not.
love.filesystem.isSymlinkGets whether a filepath is actually a symbolic link.
love.filesystem.loadLoads a Lua file (but does not run it).
love.filesystem.mountMounts a zip file or folder in the game's save directory for reading.
love.filesystem.mountFullPathMounts a full platform-dependent path to a zip file or folder for reading or writing in love.filesystem.
love.filesystem.openFileOpens a new File object, which represents an existing or new file on disk.
love.filesystem.setCRequirePathSets the filesystem paths that will be searched for c libraries when require is called.
love.filesystem.setIdentitySets the write directory for your game.
love.filesystem.setRequirePathSets the filesystem paths that will be searched when require is called.
love.filesystem.setSymlinksEnabledSets whether love.filesystem follows symbolic links.
love.filesystem.unmountUnmounts a zip file or folder previously mounted with love.filesystem.mount.
love.filesystem.unmountFullPathUnmounts a zip file or folder previously mounted with love.filesystem.mountFullPath.

Enums

FileTypeThe type of a file.
LoadModePossible load modes for love.filesystem.load.

See Also

Other Languages