Domanda

Ho un programma in cui sto utilizzando Windows Form, in quella forma che uso OpenFileDialog in cui apro un file in una directory. Poi ho utilizzare in una funzione diversa uno StreamReader e ho un secondo file nella mia directory grande / debug, che voglio lo StreamReader per aprire. Ma per qualche motivo dopo ho aperto il primo file con l'OpenFileDialog la StreamReader cerca il secondo file in quella cartella invece in bin / debug come al solito.

Qualcuno sa perché lo fa e come posso risolverlo?

Grazie in anticipo,

Greg

È stato utile?

Soluzione

Il OpenFileDialog ha quel comportamento; altera la directory corrente per l'applicazione. Per evitare che ciò accada, è possibile utilizzare il RestoreDirectory proprietà del OpenFileDialog.

Altri suggerimenti

Quando si cambia directory in una finestra di dialogo file aperto, questo fa sì che anche directory di lavoro dell'applicazione per cambiare. Quindi, se si sta tentando di utilizzare percorsi relativi, apparirà nel posto sbagliato.

La soluzione è RestoreDirectory .

Se non si specifica un percorso completo del file, ma solo un nome di file, il che significa che il file si trova nella directory corrente. Quando si utilizza l'OpenFileDialog, cambia la directory corrente.

Se si desidera accedere a un file da qualche parte indipendentemente da ciò che la directory corrente è impostata, è necessario specificare un percorso completo per esso. È possibile utilizzare Application.StartupPath per ottenere il percorso della cartella in cui il programma è.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top