Ok, quindi ho cercato in molti posti la risposta a questa domanda, ma sono aperto a tutti i collegamenti se ho perso qualcosa di ovvio.Il pantano delle eccezioni legate all'apertura di un FileStream
Sono interessato a produrre messaggi di errore ragionevoli quando tentano di aprire un determinato file, ma per qualsiasi motivo il programma non può accedere a quel file. Vorrei distinguere tra i seguenti casi:
- Il file è stato bloccato da un altro processo in modo tale che questo processo non può scrivere su di esso.
- L'utente non dispone dei privilegi di accesso appropriati per scrivere sul file (come in, le autorizzazioni utente, come visualizzato nella schermata Proprietà di un file in Esplora risorse, non concedere all'utente il permesso di scrittura)
- Il il file richiede il permesso "elevato" per accedere al file.
Sto usando un oggetto FileStream. Ho esaminato lo msdn documentation for instantiating a FileStream e non è affatto chiaro per me quale eccezione fa cosa per quanto sopra e come distinguere tra di essi. Ammetto che la mia esperienza con la programmazione di Windows è limitata, quindi potrei mancare qualcosa di ovvio. Le mie scuse se è così.
C'è una differenza tra gli ultimi 2 casi che si desidera controllare? Immagino (anche se non hanno provato) che entrambi avrebbero lanciato un 'SecurityException' dove il primo caso avrebbe lanciato una' IOException'. –
@ M.Babcock: In un certo senso, gli ultimi due casi non sono molto diversi. Tuttavia, l'utente deve (in generale) fare cose molto diverse per ottenere l'accesso al file. Per il secondo caso, potrebbe essere necessario richiedere che un altro utente dia loro il permesso. Per il 3 ° caso, hanno bisogno di "Esegui come amministratore" o forse spostare il file fuori dalla directory "Programmi" (anche se il motivo per cui dovrebbe essere lì non lo so). Vorrei aiutare l'utente a sapere cosa devono fare per ottenere l'accesso al file. – skybluecodeflier
Ancora una volta, potrei mostrare la mia ignoranza del sistema operativo Windows nel mio precedente commento: sono aperto alla correzione se la mia interpretazione non è corretta. – skybluecodeflier