Differenze tra le versioni di "Conoscere il file referenziato da un collegamento simbolico"
Da Gambas-it.org - Wikipedia.
(2 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 4: | Riga 4: | ||
===Usare la Proprietà ".Link" della Classe ''Stat''=== | ===Usare la Proprietà ".Link" della Classe ''Stat''=== | ||
− | Questa prima modalità utilizza le sole funzioni di Gambas, ed in particolare la | + | Questa prima modalità utilizza le sole funzioni di Gambas, ed in particolare la Proprietà ".Link" della Classe ''Stat'' . |
Mostriamo un semplice esempio: | Mostriamo un semplice esempio: | ||
− | + | Public Sub Main() | |
Dim s As String | Dim s As String | ||
− | s = Stat("<FONT Color= | + | s = Stat("<FONT Color=darkgreen>''/percorso/del/collegamento/simbolico''</font>").Link |
Print s | Print s | ||
− | + | End | |
Riga 21: | Riga 21: | ||
Questa seconda modalità più complessa e lunga della precedente, prevede l'utilizzo di alcune funzioni esterne del API della libreria ''Libgio'', appartenente alla risorsa GNOME. | Questa seconda modalità più complessa e lunga della precedente, prevede l'utilizzo di alcune funzioni esterne del API della libreria ''Libgio'', appartenente alla risorsa GNOME. | ||
− | Sarà necessario nell'applicazione Gambas richiamare la libreria condivisa: "''libgio-2.0.so.0. | + | Sarà necessario nell'applicazione Gambas richiamare la libreria condivisa: "''libgio-2.0.so.0.8000.2'' ". |
Mostriamo un semplice esempio: | Mostriamo un semplice esempio: | ||
− | Library "libgio-2.0:0. | + | Library "libgio-2.0:0.8000.2" |
<FONT Color=gray>' ''GFile * g_file_new_for_path (const char *path)'' | <FONT Color=gray>' ''GFile * g_file_new_for_path (const char *path)'' | ||
Riga 39: | Riga 39: | ||
− | + | Public Sub Main() | |
Dim Gf, info As Pointer | Dim Gf, info As Pointer | ||
Dim s As String | Dim s As String | ||
− | Gf = g_file_new_for_path("<FONT Color= | + | Gf = g_file_new_for_path("<FONT Color=darkgreen>''/percorso/del/collegamento/simbolico''</font>") |
If Gf == 0 Then Error.Raise("Errore !") | If Gf == 0 Then Error.Raise("Errore !") | ||
Riga 53: | Riga 53: | ||
Print s | Print s | ||
− | + | End | |
Versione attuale delle 14:54, 23 giu 2024
Un collegamento simbolico è un particolare file che fa riferimento, punta ad un altro file.
Per conoscere a quale file punta tale collegamento simbolico, in Gambas è possibile utilizzare almeno due modalità.
Usare la Proprietà ".Link" della Classe Stat
Questa prima modalità utilizza le sole funzioni di Gambas, ed in particolare la Proprietà ".Link" della Classe Stat .
Mostriamo un semplice esempio:
Public Sub Main() Dim s As String s = Stat("/percorso/del/collegamento/simbolico").Link Print s End
Usare alcune funzioni esterne del API di Libgio
Questa seconda modalità più complessa e lunga della precedente, prevede l'utilizzo di alcune funzioni esterne del API della libreria Libgio, appartenente alla risorsa GNOME.
Sarà necessario nell'applicazione Gambas richiamare la libreria condivisa: "libgio-2.0.so.0.8000.2 ".
Mostriamo un semplice esempio:
Library "libgio-2.0:0.8000.2" ' GFile * g_file_new_for_path (const char *path) ' Constructs a GFile for a given path. Private Extern g_file_new_for_path(path As String) As Pointer ' GFileInfo * g_file_query_info (GFile *file, const char *attributes, GFileQueryInfoFlags flags, GCancellable *cancellable, GError **error) ' Gets the requested information about specified file. Private Extern g_file_query_info(Gfile As Pointer, attributes As String, flags As Integer, cancellable As Pointer, GError As Pointer) As Pointer ' const char * g_file_info_get_symlink_target (GFileInfo *info) ' Gets the symlink target for a given GFileInfo. Private Extern g_file_info_get_symlink_target(Ginfo As Pointer) As String Public Sub Main() Dim Gf, info As Pointer Dim s As String Gf = g_file_new_for_path("/percorso/del/collegamento/simbolico") If Gf == 0 Then Error.Raise("Errore !") info = g_file_query_info(Gf, "standard::symlink-target", 0, 0, 0) If info == 0 Then Error.Raise("Errore !") s = g_file_info_get_symlink_target(info) Print s End