Percorso assoluto e percorso relativo dei file
Introduzione
Di per sé comprendere la differenza che c’è fra un percorso assoluto e un percorso relativo non è particolarmente difficile. [ nota 1 ]
Il percorso assoluto è quello che parte dalla directory root (/) di linux e si snoda attraverso il filesystem. Esempio di percorso assoluto:
/home/gian/Documenti/Test/Doc1
Il percorso relativo è invece quello che parte dalla directory in cui ci troviamo (relativamente ad essa per l’appunto) e sale o scende lungo il filesystem. Esempio di percorso relativo:
./ (dot + slash)
Infatti schematizzando il filesystem di Linux possiamo paragonarlo a un albero rovesciato che dalla sua base o radice parte con root (/) e si dirama verso bin/, dev/, etc/, home/ ecc.
In sostanza se un percorso inizia con lo slash (/) è assoluto, se inizia con dot (.) è relativo. Un solo punto significa directory corrente (./), con i due punti (../) si sale di una directory e proseguendo via via ../../ si sale di due ecc.
Finora ci siamo mossi linearmente ma come sappiamo i percorsi si possono fare alquanto tortuosi ad esempio potremmo doverci muovere da una directory ad un’altra che si trova allo stesso nostro livello o anche più basso ma che si dirama da altra directory; basta salire con il doppio punto (../) e spostarsi e/o scendere con slash (/). Se ad esempio dal terminale volessimo raggiungere la directory Pippo per accedere al documento in esso contenuto e ci trovassimo in Doc1 dovremmo scrivere ../ per raggiungere Test quindi Doc2/ e Pippo/Documento di Pippo. Questo il comando:
(editor di testo) ../Doc2/Pippo/Documento.txt
Nel mio caso:
~/Documenti/Test/Doc1$ gedit ../Doc2/Pippo/Documento.txt
Ora che abbiamo compreso cosa sono i percorsi occorre tenerne ben conto nel nostro progetto Gambas e fare in modo che i percorsi che sul nostro computer funzionano bene possano funzionare altrettanto bene sul computer del nostro utente. Purtroppo Gambas non riconosce i percorsi relativi, per lui i percorsi senza slash(/) o senza tilde (~) puntano al progetto e basta. Ma noi non possiamo lasciare nel progetto i nostri documenti tipo database, pagine web ecc. perché una volta compilato il progetto diventerebbero di sola lettura e quindi inutilizzabili. Fortunatamente per noi ci vengono incontro le classi: User.Home e Application.Name. Chiaramente un percorso /home/gian/Documenti/Test/Doc1 non potrà funzionare sul computer del nostro utente Andrea, pertanto dovremmo fare in modo che quando lui aprirà per la prima volta l’applicativo esso creerà una directory denominata con Application.Name nel suo User.Home e vi copierà tutti i dati utili. Naturalmente si può fare in modo più articolato ma questo è tanto per capirci. Senza dilungarci troppo occorre che noi pensiamo bene a come saranno copiati e letti gli eventuali percorsi all’interno della directory creata.
Nota: User.Home &/ Application.Name è un percorso assoluto esattamente come lo sono /home/NomeUtente/NomeApplicazione o come ~/NomeApplicazione.
Percorso Assoluto e Pecorso Relativo nella documentazione ufficiale di Gambas
La documentazione ufficiale di Gambas precisa che vi sono due tipi di percorso di un file:
- Percorso Assoluto;
- Percorso Relativo.
Rinviamo direttamente alla pagina della documentazione di Gambas relativa a questo argomento.
Note
[1] Il testo dell'introduzione alla presente pagina è a cura dell'iscritto Gianluigi del forum www.gambas-it.org .