Percorso assoluto e percorso relativo dei file

Da Gambas-it.org - Wikipedia.

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.

Diagrammaa.png


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.

Diagrammab.png


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 chiarito 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.

In Gambas riguardo al percorso relativo non vi è neanche la necessità di mettere il punto se noi scriviamo pippo.txt Gambas lo cerca all'interno della directory del progetto.

Qui occorre mettere in chiaro che il concetto di directory di progetto esiste solo nella nostra IDE, una volta che creiamo l'eseguibile tale concetto svanisce. Per esempio se noi usiamo Application.Path per indirizzare a pippo.txt una volta creato l'eseguibile tale percorso non indirizzerebbe più a nulla.

Ma, come detto, se usiamo il percorso relativo possiamo tranquillamente accedere a pippo.txt. Però qui entra in gioco un altro importante concetto: i nostri file all'interno del progetto al momento della creazione dell'eseguibile diventano di sola lettura e pertanto per la maggior parte inutilizzabili.

Fortunatamente per noi ci vengono incontro le classi: User e Application con le rispettive proprietà Home e Name.

Chiaramente un percorso /home/gian/Documenti/Test/Doc1 non può funzionare sul computer del nostro utente Andrea, pertanto dobbiamo fare in modo che quando lui apre per la prima volta il nostro applicativo esso crei una directory denominata Application.Name nel suo User.Home e vi copi tutti i file manipolabili.

Naturalmente si può fare in modo più articolato, ma questo è tanto per spiegare.

Senza dilungarci oltre occorre che noi pensiamo bene a come saranno copiati e letti gli eventuali percorsi all’interno della directory creata.

Nota: User.Home &/ Application.Name ha la stessa valenza di un percorso assoluto esattamente come /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, appunto, due tipi di percorso di un file:

  • Percorsi Assoluti;
  • Percorsi Relativi.


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 .