Differenze tra le versioni di "Controllare l'uguaglianza di due file mediante le funzioni esterne del API di libgio"

Da Gambas-it.org - Wikipedia.
(Creata pagina con '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 lib...')
 
Riga 17: Riga 17:
 
  ' ''Checks equality of two given GFiles.''</font>
 
  ' ''Checks equality of two given GFiles.''</font>
 
  Private Extern g_file_equal(gfile1 As Pointer, gfile2 As Pointer) As Boolean
 
  Private Extern g_file_equal(gfile1 As Pointer, gfile2 As Pointer) As Boolean
 +
 +
<FONT Color=gray>' ''void g_object_unref (gpointer object)''
 +
' ''Decreases the reference count of object.''</font>
 +
Private Extern g_object_unref(gobject As Pointer
 
   
 
   
 
   
 
   
Riga 33: Riga 37:
 
   
 
   
 
   Print bo
 
   Print bo
 +
 
 +
  g_object_unref(gf2)
 +
  g_object_unref(gf1)
 
   
 
   
 
  '''End'''
 
  '''End'''

Versione delle 10:01, 17 feb 2018

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

' 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 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
  
  g_object_unref(gf2)
  g_object_unref(gf1)

End



Riferimenti