Nasal library/os.path: Difference between revisions
Red Leader (talk | contribs) (Doc canRead() and Write()) |
Red Leader (talk | contribs) (More doc) |
||
Line 12: | Line 12: | ||
|text = A pseudo-class (actually a Nasal ghost). This is the main class that stores and allows manipulation of file paths. This is also integrated into the <code>os.path</code>. | |text = A pseudo-class (actually a Nasal ghost). This is the main class that stores and allows manipulation of file paths. This is also integrated into the <code>os.path</code>. | ||
}} | }} | ||
==== new() ==== | ==== new() ==== | ||
{{Nasal doc | {{Nasal doc | ||
Line 23: | Line 22: | ||
print(path.realpath); | print(path.realpath); | ||
}} | }} | ||
==== set() ==== | ==== set() ==== | ||
{{Nasal doc | {{Nasal doc | ||
Line 37: | Line 35: | ||
print(path.realpath); # prints new path | print(path.realpath); # prints new path | ||
}} | }} | ||
==== append() ==== | ==== append() ==== | ||
{{Nasal doc | {{Nasal doc | ||
Line 51: | Line 48: | ||
print(path.realpath); # prints "C:/Windows/Program Files" or "/usr/bin" | print(path.realpath); # prints "C:/Windows/Program Files" or "/usr/bin" | ||
}} | }} | ||
==== concat() ==== | ==== concat() ==== | ||
{{Nasal doc | {{Nasal doc | ||
Line 65: | Line 61: | ||
print(path.realpath); # prints "C:/Windows/Program Files" or "/usr/bin" | print(path.realpath); # prints "C:/Windows/Program Files" or "/usr/bin" | ||
}} | }} | ||
==== exists() ==== | ==== exists() ==== | ||
{{Nasal doc | {{Nasal doc | ||
Line 77: | Line 72: | ||
print(path.exists()); # prints 0 (false) | print(path.exists()); # prints 0 (false) | ||
}} | }} | ||
==== canRead() ==== | ==== canRead() ==== | ||
{{Nasal doc | {{Nasal doc | ||
Line 88: | Line 82: | ||
print(path.canRead()); # prints 1 (true) | print(path.canRead()); # prints 1 (true) | ||
}} | }} | ||
==== canWrite() ==== | ==== canWrite() ==== | ||
{{Nasal doc | {{Nasal doc | ||
Line 99: | Line 92: | ||
print(path.canWrite()); # prints 1 (true) | print(path.canWrite()); # prints 1 (true) | ||
}} | }} | ||
==== isFile() ==== | ==== isFile() ==== | ||
{{Nasal doc | |||
|syntax = os.path.isFile(); | |||
|text = Returns 1 (true) if the path points to a file and 0 (false) if it points to a directory. Note that the path must also exist. | |||
|example1 = var path = os.path.new(getprop("sim/fg-root")); | |||
print(path.isFile()); # prints 0 (false) | |||
path.append("Nasal/io.nas"); | |||
print(path.isFile()); # prints 1 (true) | |||
}} | |||
==== isDir() ==== | ==== isDir() ==== | ||
{{Nasal doc | |||
|syntax = os.path.isDir(); | |||
|text = Returns 1 (true) if the path points to a directory and 0 (false) if it points to a file. Note that the path must also exist. | |||
|example1 = var path = os.path.new(getprop("sim/fg-root")); | |||
print(path.isDir()); # prints 1 (true) | |||
path.append("Nasal/io.nas"); | |||
print(path.isDir()); # prints 0 (false) | |||
}} | |||
==== isRelative() ==== | ==== isRelative() ==== | ||
{{Nasal doc | |||
|syntax = os.path.isRelative(); | |||
|text = Returns 1 (true) if the path is relative and 0 (false) if it is not. | |||
|example1 = var path = os.path.new(getprop("sim/fg-root")); | |||
path.set("./Nasal"); | |||
print(path.isRelative()); # prints 1 (true) | |||
}} | |||
==== isAbsolute() ==== | ==== isAbsolute() ==== | ||
{{Nasal doc | |||
|syntax = os.path.isDir(); | |||
|text = Returns 1 (true) if the path is an absolute path and 0 (false) if it is not. | |||
|example1 = var path = os.path.new(getprop("sim/fg-root")); | |||
print(path.isAbsolute()); # prints 1 (true) | |||
}} | |||
==== isNull() ==== | ==== isNull() ==== | ||
==== create_dir() ==== | ==== create_dir() ==== |
Revision as of 20:32, 18 February 2018
The FlightGear forum has a subforum related to: Nasal Scripting |
Nasal scripting |
---|
Nasal internals |
---|
Memory Management (GC) |
This page contains documentation for the os.path
namespace in Nasal. This namespace implements tools (from SGPath) for manipulating file paths. Everything in the geo
namespace is sourced from flightgear/src/Scripting/NasalSGPath.cxx
Tip Copy & paste the examples into your Nasal Console and execute them to see what they do. |
Note Everything here was added to FlightGear 3.0. |
Class
os.path
A pseudo-class (actually a Nasal ghost). This is the main class that stores and allows manipulation of file paths. This is also integrated into the os.path
.
new()
os.path.new([path]);
Constructor function. Returns a new os.path
instance. Note that the path must not violate the rules for allowed paths.
- path
- Optional string specifying the filepath. If not given, the path will default to $FG_ROOT
Example
var path = os.path.new("C:/Windows"); # Windows filepath
# var path = os.path.new("/usr/bin/"); # Unix filepath
print(path.realpath);
set()
os.path.set([path]);
Sets the filepath. Note that the path must not violate the rules for allowed paths.
- path
- Optional string specifying the filepath. If not given, the path will be set to $FG_ROOT
Example
var path = os.path.new("C:/Windows");
# var path = os.path.new("/usr/bin/"); # alternative Unix filepath
print(path.realpath);
path.set("C:/Windows/Program Files");
# path.set("/usr/"); # alternative Unix filepath
print(path.realpath); # prints new path
append()
os.path.append([path]);
Appends a new part to the filepath.
- path
- Optional string specifying the new part to add to the filepath. If not given, the resultant path will not change.
Example
var path = os.path.new("C:/Windows");
# var path = os.path.new("/usr/"); # alternative Unix filepath
print(path.realpath);
path.append("Program Files");
# path.append("bin"); # alternative Unix filepath
print(path.realpath); # prints "C:/Windows/Program Files" or "/usr/bin"
concat()
os.path.concat([path]);
Appends a new part to the filepath.
- path
- Optional string specifying part to concat to the existing filepath. Note that this will simply add the string to the end of the path without adding a separator. If not given, the resultant path will not change.
Example
var path = os.path.new("C:/Windows");
# var path = os.path.new("/usr"); # alternative Unix filepath
print(path.realpath);
path.concat("/Program Files");
# path.concat("/bin"); # alternative Unix filepath
print(path.realpath); # prints "C:/Windows/Program Files" or "/usr/bin"
exists()
os.path.exists();
Returns 1 (true) if the path exists and 0 (false) if it does not.
Example
var path = os.path.new("C:/Windows");
# var path = os.path.new("/usr"); # alternative Unix filepath
print(path.exists()); # prints 1 (true)
path.set("C:/Window");
# path.set("/r"); # alternative Unix filepath
print(path.exists()); # prints 0 (false)
canRead()
os.path.canRead();
Returns 1 (true) if the path can be read (from Nasal) and 0 (false) if it cannot. This follows the rules for allowed paths.
Example
var path = os.path.new("C:/Windows");
# var path = os.path.new("/usr"); # alternative Unix filepath
print(path.canRead()); # prints 0 (false)
path.set(getprop("sim/fg-home"));
print(path.canRead()); # prints 1 (true)
canWrite()
os.path.canWrite();
Returns 1 (true) if the path can be written to (from Nasal) and 0 (false) if it cannot. This follows the rules for allowed paths.
Example
var path = os.path.new("C:/Windows");
# var path = os.path.new("/usr"); # alternative Unix filepath
print(path.canWrite()); # prints 0 (false)
path.set(getprop("sim/fg-home") ~ "/txt.log");
print(path.canWrite()); # prints 1 (true)
isFile()
os.path.isFile();
Returns 1 (true) if the path points to a file and 0 (false) if it points to a directory. Note that the path must also exist.
Example
var path = os.path.new(getprop("sim/fg-root"));
print(path.isFile()); # prints 0 (false)
path.append("Nasal/io.nas");
print(path.isFile()); # prints 1 (true)
isDir()
os.path.isDir();
Returns 1 (true) if the path points to a directory and 0 (false) if it points to a file. Note that the path must also exist.
Example
var path = os.path.new(getprop("sim/fg-root"));
print(path.isDir()); # prints 1 (true)
path.append("Nasal/io.nas");
print(path.isDir()); # prints 0 (false)
isRelative()
os.path.isRelative();
Returns 1 (true) if the path is relative and 0 (false) if it is not.
Example
var path = os.path.new(getprop("sim/fg-root"));
path.set("./Nasal");
print(path.isRelative()); # prints 1 (true)
isAbsolute()
os.path.isDir();
Returns 1 (true) if the path is an absolute path and 0 (false) if it is not.
Example
var path = os.path.new(getprop("sim/fg-root"));
print(path.isAbsolute()); # prints 1 (true)