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.
(Creata pagina con "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 libre...") |
|||
(2 versioni intermedie di uno stesso utente non sono mostrate) | |||
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 | + | E' necessario avere installata nel sistema e richiamare in Gambas la libreria condivisa: "''libgio-2.0.so.0.7200.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" | + | Library "libgio-2.0:0.7200.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 | ||
Riga 33: | Riga 32: | ||
Dim bo As Boolean | Dim bo As Boolean | ||
− | + | gf = g_file_new_for_path("<FONT Color=gray>''/percorso/del/file''</font>") | |
− | + | 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 | |
<FONT Color=gray>' ''Libera la memoria precedentemente occupata da Libgio:''</font> | <FONT Color=gray>' ''Libera la memoria precedentemente occupata da Libgio:''</font> | ||
− | + | g_object_unref(gif) | |
− | + | g_object_unref(gf) | |
'''End''' | '''End''' | ||
− | |||
=Riferimenti= | =Riferimenti= | ||
− | * https:// | + | * https://docs.gtk.org/gio/?q=g_file |
− |
Versione attuale delle 15:18, 1 mag 2023
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.7200.4 "
Mostriamo un esempio, nel quale si verificherà se un dato file può essere letto e può essere scritto.
Library "libgio-2.0:0.7200.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