Differenze tra le versioni di "Conoscere i permessi di un file mediante le funzioni esterne del API di libgio-2.0"
Da Gambas-it.org - Wikipedia.
(Una versione intermedia di uno stesso utente non è mostrata) | |||
Riga 1: | Riga 1: | ||
Con alcune funzioni esterne del API di ''libgio-2.0'' è possibile conoscere i permessi di un file. | Con alcune funzioni esterne del API di ''libgio-2.0'' è possibile conoscere i permessi di un file. | ||
− | E' necessario avere installata nel sistema e richiamare in Gambas la libreria condivisa: "''libgio-2.0.so.0.8000. | + | E' necessario avere installata nel sistema e richiamare in Gambas la libreria condivisa: "''libgio-2.0.so.0.8000.4'' " |
Mostriamo un esempio, nel quale si verificherà se un dato file può essere letto e può essere scritto. | Mostriamo un esempio, nel quale si verificherà se un dato file può essere letto e può essere scritto. | ||
− | Library "libgio-2.0:0.8000. | + | Library "libgio-2.0:0.8000.4" |
Private Enum G_FILE_QUERY_INFO_NONE = 0, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS | Private Enum G_FILE_QUERY_INFO_NONE = 0, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS |
Versione attuale delle 12:49, 18 lug 2024
Con alcune funzioni esterne del API di libgio-2.0 è possibile conoscere i permessi di un file.
E' necessario avere installata nel sistema e richiamare in Gambas la libreria condivisa: "libgio-2.0.so.0.8000.4 "
Mostriamo un esempio, nel quale si verificherà se un dato file può essere letto e può essere scritto.
Library "libgio-2.0:0.8000.4" Private Enum G_FILE_QUERY_INFO_NONE = 0, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS Private Const G_FILE_ATTRIBUTE_ACCESS_CAN_READ As String = "access::can-read" Private Const G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE As String = "access::can-write" ' 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 ' gboolean g_file_info_get_attribute_boolean (GFileInfo *info, const char *attribute) ' Gets the value of a boolean attribute. If the attribute does not contain a boolean value, FALSE will be returned. Private Extern g_file_info_get_attribute_boolean(info As Pointer, attribute As String) As Boolean ' void g_object_unref (gpointer object) ' Decreases the reference count of object. Private Extern g_object_unref(gobject As Pointer) Public Sub Main() Dim gf, gif As Pointer Dim bo As Boolean gf = g_file_new_for_path("/percorso/del/file") If gf == 0 Then Error.Raise("ERRORE !") gif = g_file_query_info(gf, G_FILE_ATTRIBUTE_ACCESS_CAN_READ, G_FILE_QUERY_INFO_NONE, 0, 0) If gif == 0 Then Error.Raise("ERRORE !") bo = g_file_info_get_attribute_boolean(gif, G_FILE_ATTRIBUTE_ACCESS_CAN_READ) Print bo gif = g_file_query_info(gf, G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE, G_FILE_QUERY_INFO_NONE, 0, 0) If gif == 0 Then Error.Raise("ERRORE !") bo = g_file_info_get_attribute_boolean(gif, G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE) Print bo ' Libera la memoria precedentemente occupata da Libgio: g_object_unref(gif) g_object_unref(gf) End