Difference between revisions of "Fs (API)"

From ComputerCraft Wiki
Jump to: navigation, search
(Made the last paragraph in the Path Names section many times easier to understand.)
m
Line 1: Line 1:
 
The FS API allows you to mess around with the filesystem.
 
The FS API allows you to mess around with the filesystem.
 +
 +
=Methods=
 
{| border="1" cellpadding="2" cellspacing="0"
 
{| border="1" cellpadding="2" cellspacing="0"
 
!style="background:#EEE" width="200px"|Method name
 
!style="background:#EEE" width="200px"|Method name
Line 42: Line 44:
 
[[Category:APIs]]
 
[[Category:APIs]]
  
== Path Names ==
+
=Path Names=
 
+
All of these functions except for [[fs.combine]] refer solely to <em>absolute paths</em>.<br />
All of these functions except for [[fs.combine]] refer solely to <em>absolute paths</em>. This means that the current working directory, as set by the <code>cd</code> command or the [[shell.setDir]] function, is ignored. Each path name consists of a list of nonempty path components separated by forward slashes, and those path components are taken one by one with the first being contained in the root directory of the computer.
+
This means that the current working directory, as set by the <code>cd</code> command or the [[shell.setDir]] function, is ignored. Each path name consists of a list of nonempty path components separated by forward slashes, and those path components are taken one by one with the first being contained in the root directory of the computer.
  
 
If you need to deal with paths provided by the user that may be absolute or may be relative to the current working directory, use [[shell.resolve]].
 
If you need to deal with paths provided by the user that may be absolute or may be relative to the current working directory, use [[shell.resolve]].
  
 
Unlike most real-world operating systems, ComputerCraft's absolute path name system does not need to be started with a forward slash ( / ). Making the directory "a/b/c" is the same as making "/a/b/c". Leaving the slashes is just a matter of preference to the coder.
 
Unlike most real-world operating systems, ComputerCraft's absolute path name system does not need to be started with a forward slash ( / ). Making the directory "a/b/c" is the same as making "/a/b/c". Leaving the slashes is just a matter of preference to the coder.

Revision as of 11:59, 29 May 2012

The FS API allows you to mess around with the filesystem.

Methods

Method name Description
fs.list(path) Lists the directories and files in the given directory
fs.exists(path) Checks if a path refers to an existing file or directory
fs.isDir(path) Checks if a path refers to an existing directory
fs.isReadOnly(path) Checks if a path is read-only (i.e. cannot be modified)
fs.getName(path) Gets the final component of a pathname
fs.getDrive(path) Gets the type of storage medium holding a file or directory
fs.makeDir(path) Makes a directory
fs.move(fromPath, toPath) Moves a file or directory to a new location
fs.copy(fromPath, toPath) Copies a file or directory to a new location
fs.delete(path) Deletes a file or directory
fs.combine(basePath, localPath) Combines two path components, returning a path consisting of the local path nested inside the base path
fs.open(path, mode) Opens a file so it can be read or written

Path Names

All of these functions except for fs.combine refer solely to absolute paths.
This means that the current working directory, as set by the cd command or the shell.setDir function, is ignored. Each path name consists of a list of nonempty path components separated by forward slashes, and those path components are taken one by one with the first being contained in the root directory of the computer.

If you need to deal with paths provided by the user that may be absolute or may be relative to the current working directory, use shell.resolve.

Unlike most real-world operating systems, ComputerCraft's absolute path name system does not need to be started with a forward slash ( / ). Making the directory "a/b/c" is the same as making "/a/b/c". Leaving the slashes is just a matter of preference to the coder.