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 (nella sua attuale versione): libgio-2.0.so.0.4002.0


Mostriamo di seguito un semplice esempio pratico:

Library "libgio-2.0:0.4002.0"

' 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


Public Sub Main()

 Dim gf1, gf2 As Pointer
 Dim bo As Boolean

  gf1 = g_file_new_for_path("/percorso/del/primo/file")
  If IsNull(gf1) 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 IsNull(gf2) Then Error.Raise("Impossibile creare un oggetto GFile con il percorso del secondo file impostato !")
  
  bo = g_file_equal(gf1, gf2)

  Print bo

End



Riferimenti