Necesitaba averiguar los inodes de los archivos, para un programa que estoy haciendo para acomodar fotos por fechas.
Como saben gambas tiene la función Stat que sirve para obtener información de un archivo (también de un directorio) pero, no se por que, no devuelve el inode como stat de GNU (que devuelve 30 datos) así que se me ocurrió esta función que aquí comparto, con eficiencia mejorable, claro esta, pero funciona.
Si a alguien se le ocurre una forma mejor, no dude en comentarla.
Public Function XStat(f As String) As Collection
Dim cn As New Collection
Dim ino As String
Dim ex As String
Dim mim As String
Dim ver As String
If Exist(f) Then
If Stat(f).Type = gb.File Then
cn.Add(Stat(f).Auth, "Auth")
cn.Add(Stat(f).Group, "Group")
cn.Add(Stat(f).Hidden, "Hidden")
cn.Add(Stat(f).LastAccess, "LastAccess")
cn.Add(Stat(f).LastChange, "LastChange")
cn.Add(Stat(f).LastModified, "LastModified")
cn.Add(Stat(f).Link, "Link")
cn.Add(Stat(f).Mode, "Mode")
cn.Add(Stat(f).Path, "Path")
cn.Add(Stat(f).Perm, "Perm")
cn.Add(Stat(f).SetGID, "SetGID")
cn.Add(Stat(f).SetUID, "SetUID")
cn.Add(Stat(f).Size, "Size")
cn.Add(Stat(f).Sticky, "Sticky")
cn.Add(Stat(f).Time, "Time")
cn.Add(Stat(f).Type, "Type")
cn.Add(Stat(f).User, "User")
Shell "stat -c %i '" & f & "' 2>&1" To ino
ino = Replace(ino, "\n", "")
cn.Add(ino, "Inode")
ex = File.Ext(Stat(f).Path)
cn.Add(ex, "Ext")
mim = DesktopMime.FromFile(f).Type
cn.Add(mim, "Mime")
ver = fil.FileVersion(f)
cn.Add(ver, "Version")
Endif
Endif
Return cn
End
Dim cn As New Collection
Dim ino As String
Dim ex As String
Dim mim As String
Dim ver As String
If Exist(f) Then
If Stat(f).Type = gb.File Then
cn.Add(Stat(f).Auth, "Auth")
cn.Add(Stat(f).Group, "Group")
cn.Add(Stat(f).Hidden, "Hidden")
cn.Add(Stat(f).LastAccess, "LastAccess")
cn.Add(Stat(f).LastChange, "LastChange")
cn.Add(Stat(f).LastModified, "LastModified")
cn.Add(Stat(f).Link, "Link")
cn.Add(Stat(f).Mode, "Mode")
cn.Add(Stat(f).Path, "Path")
cn.Add(Stat(f).Perm, "Perm")
cn.Add(Stat(f).SetGID, "SetGID")
cn.Add(Stat(f).SetUID, "SetUID")
cn.Add(Stat(f).Size, "Size")
cn.Add(Stat(f).Sticky, "Sticky")
cn.Add(Stat(f).Time, "Time")
cn.Add(Stat(f).Type, "Type")
cn.Add(Stat(f).User, "User")
Shell "stat -c %i '" & f & "' 2>&1" To ino
ino = Replace(ino, "\n", "")
cn.Add(ino, "Inode")
ex = File.Ext(Stat(f).Path)
cn.Add(ex, "Ext")
mim = DesktopMime.FromFile(f).Type
cn.Add(mim, "Mime")
ver = fil.FileVersion(f)
cn.Add(ver, "Version")
Endif
Endif
Return cn
End
Saludos.