Controllare l'uguaglianza di due file mediante le funzioni esterne del API di libgio

Da Gambas-it.org - Wikipedia.

La libreria Libgio fornisce un'astrazione del file system che permette alle applicazioni di accedere ai file locali e remoti.

E' possibile con alcune funzioni della libreria Libgio controllare se due file sono uguali. Si noti che due oggetti GFile che differiscono possono ancora fare riferimento allo stesso file del file system a causa di varie forme di aliasing del nome del file.

Sarà necessario richiamare la libreria condivisa: "libgio-2.0.so.0.7800.3 ".

Mostriamo di seguito un semplice esempio pratico:

Library "libgio-2.0:0.7800.3"

' GFile * g_file_new_for_path (const char *path)
' Constructs a GFile for a given path. This operation never fails.
Private Extern g_file_new_for_path(path As String) As Pointer

' gboolean g_file_equal (GFile *file1, GFile *file2)
' Checks equality of two given GFiles.
Private Extern g_file_equal(gfile1 As Pointer, gfile2 As Pointer) 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 gf1, gf2 As Pointer
 Dim bo As Boolean

 gf1 = g_file_new_for_path("/percorso/del/primo/file")
 If gf1 == 0 Then Error.Raise("Impossibile creare un oggetto GFile con il percorso del primo file impostato !")

 gf2 = g_file_new_for_path("/percorso/del/secondo/file")
 If gf2 == 0 Then Error.Raise("Impossibile creare un oggetto GFile con il percorso del secondo file impostato !")
  
 bo = g_file_equal(gf1, gf2)

 Print bo
  
 g_object_unref(gf2)
 g_object_unref(gf1)

End


Riferimenti