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...')
 
 
(6 versioni intermedie di uno stesso utente non sono mostrate)
Riga 3: Riga 3:
 
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.
 
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''
+
Sarà necessario richiamare la libreria condivisa: "''libgio-2.0.so.0.7800.3'' ".
 
 
 
 
  
 
Mostriamo di seguito un semplice esempio pratico:
 
Mostriamo di seguito un semplice esempio pratico:
  Library "libgio-2.0:0.4002.0"
+
  Library "libgio-2.0:0.7800.3"
 
   
 
   
 
  <FONT Color=gray>' ''GFile * g_file_new_for_path (const char *path)''
 
  <FONT Color=gray>' ''GFile * g_file_new_for_path (const char *path)''
Riga 18: Riga 16:
 
  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
 
   
 
   
  '''Public''' Sub Main()
+
   
 +
Public Sub Main()
 
   
 
   
 
   Dim gf1, gf2 As Pointer
 
   Dim gf1, gf2 As Pointer
 
   Dim bo As Boolean
 
   Dim bo As Boolean
 
   
 
   
  gf1 = g_file_new_for_path("''/percorso/del/primo/file''")
+
  gf1 = g_file_new_for_path("<FONT Color=darkgreen>''/percorso/del/primo/file''</font>")
  If IsNull(gf1) Then Error.Raise("Impossibile creare un oggetto GFile con il percorso del primo file impostato !")
+
  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''")
+
  gf2 = g_file_new_for_path("<FONT Color=darkgreen>''/percorso/del/secondo/file''</font>")
  If IsNull(gf2) Then Error.Raise("Impossibile creare un oggetto GFile con il percorso del secondo file impostato !")
+
  If gf2 == 0 Then Error.Raise("Impossibile creare un oggetto GFile con il percorso del secondo file impostato !")
 
    
 
    
  bo = g_file_equal(gf1, gf2)
+
  bo = g_file_equal(gf1, gf2)
 
   
 
   
  Print bo
+
  Print bo
 +
 
 +
  g_object_unref(gf2)
 +
  g_object_unref(gf1)
 
   
 
   
  '''End'''
+
  End
 
 
  
  
  
 
=Riferimenti=
 
=Riferimenti=
* [https://developer.gnome.org/gio/stable/ L'API di GIO]
+
* https://docs.gtk.org/gio/method.File.equal.html

Versione attuale delle 12:48, 9 gen 2024

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