mio C# applicazione scrive il percorso completo, circondato da doppi apici in un file, con:Odd C numero # percorso
streamWriter.WriteLine("\"" + Application.ExecutablePath + "\"");
Normalmente funziona, il file scritto contiene
"D:\Dev\Projects\MyApp\bin\Debug\MyApp.exe"
Ma, se il il percorso eseguibile della mia applicazione contiene un #, qualcosa di strano accade. L'output diventa:
"D:\Dev\Projects#/MyApp/bin/Debug/MyApp.exe"
Le barre dopo il # diventano barre in avanti. Ciò causa problemi con il sistema che sto sviluppando.
Perché sta succedendo questo, e c'è un modo per prevenirlo che è più elegante di string.replacing il percorso prima di scrivere?
Non riesco a riprodurre questo. Ho la mia app in esecuzione da C: \ my # \ project \ foo.exe e scrive Application.ExecutablePath correttamente come hai scritto sopra. Quando esegui il debug, Application.ExecutablePath controlla correttamente? Stai facendo post-elaborazione sul testo che scrivi che non viene mostrato qui? – Joe
L'ho ricontrollato in un nuovo progetto, con solo il codice per scrivere il file. Si riproduce ancora. Il framework che sta usando è 4,5 se questo fa alcuna differenza. – Ryan
Interessante, soprattutto alla luce del post di Elian qui sotto. Mi chiedo cosa ho fatto in modo diverso (anche se ho usato il framework 4.0 ...) – Joe