Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision Both sides next revision
api:filesystem [2015/02/01 00:33]
solra_bizna [Filesystem API] Document filesystem.segments
api:filesystem [2015/02/01 00:39]
solra_bizna [Filesystem API] Document an important semantic of filesystem.segments that I forgot about
Line 10: Line 10:
   Returns the canonical form of the specified path, i.e. a path containing no "​indirections"​ such as `.` or `..`. For example, the paths `/​tmp/​../​bin/​ls.lua` and `/​bin/​./​ls.lua` are equivalent, and their canonical form is `/​bin/​ls.lua`.  ​   Returns the canonical form of the specified path, i.e. a path containing no "​indirections"​ such as `.` or `..`. For example, the paths `/​tmp/​../​bin/​ls.lua` and `/​bin/​./​ls.lua` are equivalent, and their canonical form is `/​bin/​ls.lua`.  ​
   Note that this function truncates relative paths to their topmost "​known"​ directory. For example, `../​bin/​ls.lua` becomes `bin/​ls.lua`. It stays a relative path, however - mind the lack of a leading slash.   Note that this function truncates relative paths to their topmost "​known"​ directory. For example, `../​bin/​ls.lua` becomes `bin/​ls.lua`. It stays a relative path, however - mind the lack of a leading slash.
 +- `filesystem.segments(path:​ string): table`  ​
 +  Returns a table containing one entry for each //​canonical//​ segment of the given path.
 +  Examples:  ​
 +  * `filesystem.segments("​foo/​bar"​)` -> `{"​foo","​bar"​}`
 +  * `filesystem.segments("​foo/​bar/​../​baz"​)` -> `{"​foo","​baz"​}`
 +
 - `filesystem.concat(pathA:​ string, pathB: string[, ...]): string`  ​ - `filesystem.concat(pathA:​ string, pathB: string[, ...]): string`  ​
   Concatenates two or more paths. Note that all paths other than the first are treated as relative paths, even if they begin with a slash. The canonical form of the resulting concatenated path is returned, so `fs.concat("​a",​ "​.."​)` results in an empty string.   Concatenates two or more paths. Note that all paths other than the first are treated as relative paths, even if they begin with a slash. The canonical form of the resulting concatenated path is returned, so `fs.concat("​a",​ "​.."​)` results in an empty string.
-- `filesystem.segments(path:​ string): table`  ​ 
-  Returns a table containing one entry for each segment of the given path.  ​ 
-  e.g. `filesystem.segments("​foo/​bar"​)` -> `{"​foo","​bar"​}` 
 - `filesystem.path(path:​ string): string`  ​ - `filesystem.path(path:​ string): string`  ​
   Returns the path component of a path to a file, i.e. everything before the last slash in the canonical form of the specified path.   Returns the path component of a path to a file, i.e. everything before the last slash in the canonical form of the specified path.