Può darsi :-\ che il problema sorga dalla circostanza che fai riferimento a una "directory" e non a uno specifico "file", atteso che la guida dice riguardo alla Classe statica "Stat":
« Questa classe rappresenta tutte le informazioni restituite dal sistema su uno specifico file. »
Credo che vuott abbia centrato il problema se creo un s-link nella cartella work e interrogo con Print Stat("~/work/sdb").Type
la console mi ritorna 6 che è:
Const Link As Integer = 6
Flag used by the Stat property for a symbolic link.
Pastrank, e se provi questo codice ?
Library "libc:6"
' ssize_t readlink (const char *path, char *buf, size_t len)
' Read the contents of the symbolic link PATH into no more than LEN bytes of BUF.
Private Extern readlink(path As String, buf As Byte[], _len As Long) As Long
' char *canonicalize_file_name (const char *path)
' Return the canonicalized absolute pathname of a symbolic links.
Private Extern canonicalize_file_name(path As String) As Pointer
Public Sub Main()
Dim sl As String
Dim buf As New Byte[32]
Dim l As Long
sl = "/home/me/hd1/work/directory"
l = readlink(sl, buf, buf.Count)
Print buf.ToString(0, l)
Print String@(canonicalize_file_name(sl))
End
Pastrank, e se provi questo codice ?
Funziona :), e riesco a mantenere la funzione semplice e leggibile, mentre libc6 non e' una libreria esotica che magari a breve sparisce.
Public Function getSymlinkedDirectory(sl As String) As String
Dim s As String
Dim buf As New Byte[32]
Dim l As Long
l = readlink(sl, buf, buf.Count)
s = String@(canonicalize_file_name(sl))
Return IIf(s = "", sl, s)
End
Mi succedendo di tutto :rolleyes: questa funzione serve perche' l'applicazione che richiamo fa distinzioni tra il percorso originale e quello linkato, chissa' poi perche' (oltre a linee di comando e regole per l'importazione complicate, pero' per le mie cose farebbe tutto e velocemente).
la console mi ritorna 6 che è:
Const Link As Integer = 6
Flag used by the Stat property for a symbolic link.
La mia speranza era che fosse una cosa che funzionasse come readlink, che sulla mia Debian non fa differenza e ritorna la posizione del file o della directory reale, e Python pure mi confonde le idee :)
ma se io scrivo questo: Print Stat("~/work/sdb", False).Link
qui funziona e mi ritorna il link.
Ma probabilmente a te serve qualcosa di diverso :-\