Package ch.bailu.gtk.glib
Klasse PathBuf
java.lang.Object
ch.bailu.gtk.type.Type
ch.bailu.gtk.type.Pointer
ch.bailu.gtk.type.Record
ch.bailu.gtk.glib.PathBuf
- Alle implementierten Schnittstellen:
PointerInterface
`GPathBuf` is a helper type that allows you to easily build paths from
individual elements, using the platform specific conventions for path
separators.
```c
g_auto (GPathBuf) path;
g_path_buf_init (&path);
g_path_buf_push (&path, "usr");
g_path_buf_push (&path, "bin");
g_path_buf_push (&path, "echo");
g_autofree char *echo = g_path_buf_to_path (&path);
g_assert_cmpstr (echo, ==, "/usr/bin/echo");
```
You can also load a full path and then operate on its components:
```c
g_auto (GPathBuf) path;
g_path_buf_init_from_path (&path, "/usr/bin/echo");
g_path_buf_pop (&path);
g_path_buf_push (&path, "sh");
g_autofree char *sh = g_path_buf_to_path (&path);
g_assert_cmpstr (sh, ==, "/usr/bin/sh");
```
individual elements, using the platform specific conventions for path
separators.
```c
g_auto (GPathBuf) path;
g_path_buf_init (&path);
g_path_buf_push (&path, "usr");
g_path_buf_push (&path, "bin");
g_path_buf_push (&path, "echo");
g_autofree char *echo = g_path_buf_to_path (&path);
g_assert_cmpstr (echo, ==, "/usr/bin/echo");
```
You can also load a full path and then operate on its components:
```c
g_auto (GPathBuf) path;
g_path_buf_init_from_path (&path, "/usr/bin/echo");
g_path_buf_pop (&path);
g_path_buf_push (&path, "sh");
g_autofree char *sh = g_path_buf_to_path (&path);
g_assert_cmpstr (sh, ==, "/usr/bin/sh");
```
-
Feldübersicht
-
Konstruktorübersicht
Konstruktoren -
Methodenübersicht
Modifizierer und TypMethodeBeschreibungstatic PathBuf
_new()
Allocates a new `GPathBuf`.void
clear()
Clears the contents of the path buffer.Clears the contents of the path buffer and returns the built path.copy()
Copies the contents of a path buffer into a new `GPathBuf`.static boolean
Compares two path buffers for equality and returns `TRUE`
if they are equal.void
free()
Frees a `GPathBuf` allocated by g_path_buf_new().Frees a `GPathBuf` allocated by g_path_buf_new(), and
returns the path inside the buffer.static ClassHandler
init()
Initializes a `GPathBuf` instance.initFromPath
(Str path) Initializes a `GPathBuf` instance with the given path.initFromPath
(String path) Initializes a `GPathBuf` instance with the given path.static PathBuf
newFromPath
(Str path) Allocates a new `GPathBuf` with the given @path.boolean
pop()
Removes the last element of the path buffer.Extends the given path buffer with @path.Extends the given path buffer with @path.boolean
setExtension
(Str extension) Adds an extension to the file name in the path buffer.boolean
setExtension
(String extension) Adds an extension to the file name in the path buffer.boolean
setFilename
(Str file_name) Sets the file name of the path.boolean
setFilename
(String file_name) Sets the file name of the path.toPath()
Retrieves the built path from the path buffer.Von Klasse geerbte Methoden ch.bailu.gtk.type.Pointer
asCPointer, cast, connectSignal, disconnectSignals, disconnectSignals, equals, hashCode, throwIfNull, throwNullPointerException, toString, unregisterCallbacks, unregisterCallbacks
Von Klasse geerbte Methoden ch.bailu.gtk.type.Type
asCPointer, asCPointer, asCPointerNotNull, asJnaPointer, asJnaPointer, asPointer, asPointer, cast, cast, throwIfNull
Von Klasse geerbte Methoden java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Von Schnittstelle geerbte Methoden ch.bailu.gtk.type.PointerInterface
asCPointerNotNull, asJnaPointer, asPointer, isNotNull, isNull
-
Konstruktordetails
-
PathBuf
-
-
Methodendetails
-
getClassHandler
-
clear
public void clear()Clears the contents of the path buffer.
This function should be use to free the resources in a stack-allocated
`GPathBuf` initialized using g_path_buf_init() or
g_path_buf_init_from_path(). -
clearToPath
Clears the contents of the path buffer and returns the built path.
This function returns `NULL` if the `GPathBuf` is empty.
See also: g_path_buf_to_path()- Gibt zurück:
- the built path
-
copy
Copies the contents of a path buffer into a new `GPathBuf`.- Gibt zurück:
- the newly allocated path buffer
-
free
public void free()Frees a `GPathBuf` allocated by g_path_buf_new(). -
freeToPath
Frees a `GPathBuf` allocated by g_path_buf_new(), and
returns the path inside the buffer.
This function returns `NULL` if the `GPathBuf` is empty.
See also: g_path_buf_to_path()- Gibt zurück:
- the path
-
init
Initializes a `GPathBuf` instance.- Gibt zurück:
- the initialized path builder
-
initFromPath
Initializes a `GPathBuf` instance with the given path.- Parameter:
path
- a file system path- Gibt zurück:
- the initialized path builder
-
initFromPath
Initializes a `GPathBuf` instance with the given path.- Parameter:
path
- a file system path- Gibt zurück:
- the initialized path builder
-
pop
public boolean pop()Removes the last element of the path buffer.
If there is only one element in the path buffer (for example, `/` on
Unix-like operating systems or the drive on Windows systems), it will
not be removed and %FALSE will be returned instead.
<!-- language="C" --> GPathBuf buf, cmp; g_path_buf_init_from_path (&buf, "/bin/sh"); g_path_buf_pop (&buf); g_path_buf_init_from_path (&cmp, "/bin"); g_assert_true (g_path_buf_equal (&buf, &cmp)); g_path_buf_clear (&cmp); g_path_buf_pop (&buf); g_path_buf_init_from_path (&cmp, "/"); g_assert_true (g_path_buf_equal (&buf, &cmp)); g_path_buf_clear (&cmp); g_path_buf_clear (&buf);
- Gibt zurück:
- `TRUE` if the buffer was modified and `FALSE` otherwise
-
push
Extends the given path buffer with @path.
If @path is absolute, it replaces the current path.
If @path contains a directory separator, the buffer is extended by
as many elements the path provides.
On Windows, both forward slashes and backslashes are treated as
directory separators. On other platforms, %G_DIR_SEPARATOR_S is the
only directory separator.
<!-- language="C" --> GPathBuf buf, cmp; g_path_buf_init_from_path (&buf, "/tmp"); g_path_buf_push (&buf, ".X11-unix/X0"); g_path_buf_init_from_path (&cmp, "/tmp/.X11-unix/X0"); g_assert_true (g_path_buf_equal (&buf, &cmp)); g_path_buf_clear (&cmp); g_path_buf_push (&buf, "/etc/locale.conf"); g_path_buf_init_from_path (&cmp, "/etc/locale.conf"); g_assert_true (g_path_buf_equal (&buf, &cmp)); g_path_buf_clear (&cmp); g_path_buf_clear (&buf);
- Parameter:
path
- a path- Gibt zurück:
- the same pointer to @buf, for convenience
-
push
Extends the given path buffer with @path.
If @path is absolute, it replaces the current path.
If @path contains a directory separator, the buffer is extended by
as many elements the path provides.
On Windows, both forward slashes and backslashes are treated as
directory separators. On other platforms, %G_DIR_SEPARATOR_S is the
only directory separator.
<!-- language="C" --> GPathBuf buf, cmp; g_path_buf_init_from_path (&buf, "/tmp"); g_path_buf_push (&buf, ".X11-unix/X0"); g_path_buf_init_from_path (&cmp, "/tmp/.X11-unix/X0"); g_assert_true (g_path_buf_equal (&buf, &cmp)); g_path_buf_clear (&cmp); g_path_buf_push (&buf, "/etc/locale.conf"); g_path_buf_init_from_path (&cmp, "/etc/locale.conf"); g_assert_true (g_path_buf_equal (&buf, &cmp)); g_path_buf_clear (&cmp); g_path_buf_clear (&buf);
- Parameter:
path
- a path- Gibt zurück:
- the same pointer to @buf, for convenience
-
setExtension
Adds an extension to the file name in the path buffer.
If @extension is `NULL`, the extension will be unset.
If the path buffer does not have a file name set, this function returns
`FALSE` and leaves the path buffer unmodified.- Parameter:
extension
- the file extension- Gibt zurück:
- `TRUE` if the extension was replaced, and `FALSE` otherwise
-
setExtension
Adds an extension to the file name in the path buffer.
If @extension is `NULL`, the extension will be unset.
If the path buffer does not have a file name set, this function returns
`FALSE` and leaves the path buffer unmodified.- Parameter:
extension
- the file extension- Gibt zurück:
- `TRUE` if the extension was replaced, and `FALSE` otherwise
-
setFilename
Sets the file name of the path.
If the path buffer is empty, the filename is left unset and this
function returns `FALSE`.
If the path buffer only contains the root element (on Unix-like operating
systems) or the drive (on Windows), this is the equivalent of pushing
the new @file_name.
If the path buffer contains a path, this is the equivalent of
popping the path buffer and pushing @file_name, creating a
sibling of the original path.
<!-- language="C" --> GPathBuf buf, cmp; g_path_buf_init_from_path (&buf, "/"); g_path_buf_set_filename (&buf, "bar"); g_path_buf_init_from_path (&cmp, "/bar"); g_assert_true (g_path_buf_equal (&buf, &cmp)); g_path_buf_clear (&cmp); g_path_buf_set_filename (&buf, "baz.txt"); g_path_buf_init_from_path (&cmp, "/baz.txt"); g_assert_true (g_path_buf_equal (&buf, &cmp); g_path_buf_clear (&cmp); g_path_buf_clear (&buf);
- Parameter:
file_name
- the file name in the path- Gibt zurück:
- `TRUE` if the file name was replaced, and `FALSE` otherwise
-
setFilename
Sets the file name of the path.
If the path buffer is empty, the filename is left unset and this
function returns `FALSE`.
If the path buffer only contains the root element (on Unix-like operating
systems) or the drive (on Windows), this is the equivalent of pushing
the new @file_name.
If the path buffer contains a path, this is the equivalent of
popping the path buffer and pushing @file_name, creating a
sibling of the original path.
<!-- language="C" --> GPathBuf buf, cmp; g_path_buf_init_from_path (&buf, "/"); g_path_buf_set_filename (&buf, "bar"); g_path_buf_init_from_path (&cmp, "/bar"); g_assert_true (g_path_buf_equal (&buf, &cmp)); g_path_buf_clear (&cmp); g_path_buf_set_filename (&buf, "baz.txt"); g_path_buf_init_from_path (&cmp, "/baz.txt"); g_assert_true (g_path_buf_equal (&buf, &cmp); g_path_buf_clear (&cmp); g_path_buf_clear (&buf);
- Parameter:
file_name
- the file name in the path- Gibt zurück:
- `TRUE` if the file name was replaced, and `FALSE` otherwise
-
toPath
Retrieves the built path from the path buffer.
On Windows, the result contains backslashes as directory separators,
even if forward slashes were used in input.
If the path buffer is empty, this function returns `NULL`.- Gibt zurück:
- the path
-
equal
Compares two path buffers for equality and returns `TRUE`
if they are equal.
The path inside the paths buffers are not going to be normalized,
so `X/Y/Z/A/..`, `X/./Y/Z` and `X/Y/Z` are not going to be considered
equal.
This function can be passed to g_hash_table_new() as the
`key_equal_func` parameter.- Parameter:
v1
- a path buffer to comparev2
- a path buffer to compare- Gibt zurück:
- `TRUE` if the two path buffers are equal, and `FALSE` otherwise
-
_new
Allocates a new `GPathBuf`.- Gibt zurück:
- the newly allocated path buffer
-
newFromPath
Allocates a new `GPathBuf` with the given @path.- Parameter:
path
- the path used to initialize the buffer- Gibt zurück:
- the newly allocated path buffer
-