I percorsi relativi in C# si comportano in modo approssimativo per me. In un caso sto gestendo un set di oggetti Texture2d sulla mia app, prendendo il nome del file e usandolo per localizzare i file e caricare le trame in oggetti Image. Carico quindi un'immagine da un percorso relativo memorizzato nel file di classe e utilizzo un percorso relativo che deve essere relativo a Content/gfx. Ma se non carico queste trame questi percorsi relativi falliranno. Come posso garantire che il mio percorso rel non fallirà? Nel web work tutti i percorsi rel sono relativi alla cartella in cui si trova il file, posso impostarlo in questo modo e creare tutti i percorsi rel alla cartella principale in cui si trova la mia app?Percorsi relativi in Winform
risposta
Si consiglia di non utilizzare i percorsi relativi in primo luogo.
Utilizzare Path.Combine per trasformare i percorsi relativi in percorsi assoluti. Ad esempio, è possibile utilizzare questo per ottenere il percorso completo del file EXE di avvio:
string exeFile = (new System.Uri(Assembly.GetEntryAssembly().CodeBase)).AbsolutePath;
Una volta che avete che, si può ottenere è directory:
string exeDir = Path.GetDirectoryName(exeFile);
e trasformare il vostro percorso relativo a un assoluto percorso:
string fullPath = Path.Combine(exeDir, "..\\..\\Images\\Texture.dds");
Questo sarà molto più affidabile rispetto al tentativo di utilizzare percorsi relativi.
Se vi aspettate una risorsa di essere nella stessa directory del file eseguibile o in una sottodirectory di quella directory, è meglio usare sempre
string fullPath = System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), subPath);
o se siete preoccupati che la directory di lavoro è possibile che tu possa fare ciò:
string fullPath = System.IO.Path.Combine(System.Reflection.Assembly.GetEntryAssembly().Location, subPath);
// [spazio dei nomi] è il nome dello spazio // è necessario copiare il file .-- in Depug il file
string path = (Assembly.GetEntryAssembly().Location + "");
path = path.Replace("name space", "filename.--");
// [WindowsFormsApplication4] is name space
//you should copy your "mysound.wav" into Depug file
//example::
string path_sound = (Assembly.GetEntryAssembly().Location + "");
path_sound = path_sound.Replace("WindowsFormsApplication4.exe", "mysound.wav");
SoundPlayer player1 = new SoundPlayer(path_sound);
player1.Play();
- 1. Percorsi file relativi Java
- 2. PHP - percorsi relativi "richiedono"
- 3. .load() e percorsi relativi
- 4. Conversione di percorsi relativi assoluti Percorsi
- 5. Package percorsi relativi a R
- 6. percorsi relativi per librerie condivise
- 7. percorsi relativi utilizzando extjs 4
- 8. percorsi relativi e assoluti php
- 9. Come risolvere i percorsi relativi in python?
- 10. Percorsi relativi con recupero in Javascript
- 11. Nuovo in Ant - Problema con percorsi relativi
- 12. Percorsi relativi per portatili portatili in matematica
- 13. Percorsi relativi con MSBuild project vs solution
- 14. .htaccess riscrittura rompe i percorsi relativi
- 15. Percorsi fisici, relativi, assoluti e altri
- 16. Percorsi file relativi per connessioni dati Excel
- 17. Uso della richiesta con percorsi relativi
- 18. Percorsi relativi con moduli/pacchetti RequireJS
- 19. Come i percorsi relativi a Vim
- 20. Mercurial "hg status" e relativi percorsi
- 21. InstallShield LE - Percorsi relativi al file
- 22. Percorsi relativi nella minificazione CSS e Grunt?
- 23. MENO importazione di CSS e relativi percorsi
- 24. percorsi relativi partial riferimento ad altri partial
- 25. Come gestire i percorsi relativi in node.js/express?
- 26. Percorsi relativi in un codice applicazione ASP.NET dietro
- 27. Come posso aprire file usando percorsi relativi in Go?
- 28. percorsi relativi a servizio WCF ospitati in IIS
- 29. Come si specificano i percorsi relativi in CMAKE?
- 30. Significato assoluti/percorsi relativi a stack trace pitone
È questo in debug o in modalità schierato? –