Ciao a tutti,
sono nuovo del forum e ho bisogno di un consiglio riguardo alla gestione degli indirizzi dei file in un piccolo programma scritto con VB .NET. Per l'università mi sto cimentando nella programmazione di una macro per il programma Solid Edge (programma di modellazione 3D, studio ing. meccanica) e vorrei raggiungere il seguente obiettivo: la mia macro deve accedere a file di diverso tipo (.xls, .par, .asm, etc) e tutti questi file si trovano in una cartella (che possiamo chiamare "pippo") in posizioni differenti; anche l'exe della macro e tutti i file generati durante la sua compilazione si trovano nella stessa cartella con i rispettivi indirizzi. Io vorrei fare in modo che la mia macro risulti funzionante anche su altri pc, o semplicemente anche sullo stesso una volta che sposto la cartella "pippo" dalla posizione attuale (il desktop) in un'altra posizione; per questo motivo si trova tutto in un unica cartella, in modo che si debba spostare solo quella, ma la struttura dei file non cambi.
Il problema è che nel codice della mia macro ho utilizzato gli indirizzi dei singoli file (ad esempio "C:/Users/user/desktop/pippo/file1.xls") e dunque, se io sposto la cartella "pippo" su un altro pc o semplicemente in una destinazione diversa del mio, ottengo ovviamente degli errori perchè il programma nn trova più tutti i file che sono necessari al suo svolgimento. In che modo potrei rendere i miei indirizzi "dinamici"? Intendo dire: in che modo potrei al programma che dalla cartella "pippo" in poi la struttura dei file è sempre la stessa, ma che la cartella "pippo" è stata spostata!?
Pensavo di ricorrere all'istruzione:
che mi restituisce una stringa contenente l'indirizzo dell'exe della mia macro, ma poi nn so cosa farmene. Il punto è che l'exe della mia macro ha il seguente indirizzo: "C:/Users/user/desktop/pippo/macro/nomemacro/bin/debug/macro.exe" (in alternativa, quando avrò la versione definitiva nn sarà più nella cartella debug ma in quella release, ma la struttura saraà la stessa); a me basterebbe dire in qualche modo al programma di fermarsi a pippo, quindi a "C:/Users/user/desktop/pippo", e poi, tramite il comando:codice:My.Application.Info.DirectoryPath
unire questa parte di indirizzo a quella fissa del file che mi interessa.codice:Path.Combine()
So di non esser stato molto chiaro, quindi per qualunque chiarimento chiedetemi pure; qualcuno sarebbe comunque in grado di darmi una mano o qualunque suggerimento utile per raggiungere il mio obiettivo? Questa è solo la soluzione a cui avevo pensato io, ma qualunque altra soluzione funzionante mi andrebbe bene e immagino ne esistano.
Grazie a tutti per le risposte che mi darete!

Rispondi quotando