Se sto cercando di cancellare un file, ma allo stesso tempo un altro processo sta eseguendo un File.Exist (...) sullo stesso file, questo potrebbe potenzialmente bloccare il file e causare il fallimento del mio processo?La chiamata a File.Exist causerà il blocco di un file?
risposta
No, File.Exist() controlla solo che il file in questione si trovi sul file system nel percorso specificato. Non accede ai dati o alle intestazioni di file in alcun modo, quindi non bloccherà il file.
Nota a margine, anche l'apertura di un file non necessariamente la blocca. Dipende dai parametri di accesso scelti all'apertura.
No, File.Exist non blocca il file. Un ottimo modo per vedere cosa sta succedendo sotto le coperte, però, è quello di guardare attraverso il source code.
Tirare giù il codice sorgente per le librerie della classe base di .Net Framework e dare un'occhiata a ciò che accade dietro le quinte. La classe System.IO.File, in particolare, ha alcune selezioni in default molto interessanti per la gestione dei file, il blocco, rilasciando, etc. In casi come il vostro, vedendo la fonte di ciò che accade dietro le quinte può fare la differenza in termini di come progetti la tua applicazione.
Per il collegamento:
Cosa posso fare con la Sorgente CLI condiviso? C'è una ricchezza di tecnologia del linguaggio di programmazione in Fonte CLI Shared. E 'probabile che sia di interesse per un vasto pubblico, tra cui:
- Gli sviluppatori interessati il funzionamento interno di .NET Framework può esplorare questa implementazione del CLI per vedere come funziona la raccolta dei rifiuti, la compilazione JIT e la verifica è gestiti, implementati protocolli di sicurezza e organizzazione di framework e sistemi di oggetti virtuali.
- docenti e ricercatori che fanno il lavoro con la tecnologia avanzata del compilatore. I progetti di ricerca nelle estensioni della lingua, le ottimizzazioni JIT e la moderna garbage collection hanno tutti una base nella CLI di origine condivisa. I corsi di compilazione moderni possono essere basati sui linguaggi C# o JScript implementati sulla CLI.
- Le persone che sviluppano le proprie implementazioni CLI troveranno la CLI della sorgente condivisa come una guida indispensabile e in aggiunta agli standard ECMA.
Questa è una risposta ad anu - e chiunque faccia qualcosa di simile con i file.
È piuttosto vitale accedere ai file con un'istruzione using. Ciò ti assicura di disporre appropriatamente del tuo riferimento al file.
using (var fs = File.OpenRead(path)) {
// Do something
}
- 1. Rails File.exist? produce false quando è presente il file
- 2. Arresto di un thread bloccato a una chiamata di blocco
- 3. Come interrompere il blocco TcpListener :: accetta la chiamata?
- 4. La chiamata a setTimeout cancella il callstack?
- 5. L'utilizzo di goto causerà perdite di memoria?
- 6. Discrepanza tra la chiamata a statvfs e il comando df
- 7. blocco all'interno di blocco
- 8. proibire la chiamata a System.exit
- 9. Chiamata al blocco di manubri helper da un altro assistente
- 10. iOS: l'utilizzo di [UIImage -imageNamed:] senza estensione file causerà problemi di prestazioni?
- 11. La creazione di un metodo personalizzato con blocco di completamento
- 12. C'è un blocco di file in Rust?
- 13. creazione di un blocco di file in MATLAB (file mutex)
- 14. Il blocco del metodo JavaScript WebSocket.send?
- 15. Attività Android onDestroy() chiamata su blocco schermo
- 16. La chiamata a questo dall'interno di un nidificato Java ActionListener
- 17. C#: blocco di una chiamata di funzione fino a condizione soddisfatta
- 18. Blocco di chiamata all'interno di una condizione if: modello django
- 19. Avviso Xcode: "Ciò causerà la visualizzazione dell'effetto interrotto finché l'opacità non ritorna a 1"
- 20. Quando la chiamata di sistema write() scrive tutto il buffer richiesto rispetto a una scrittura parziale?
- 21. Il richiamo di due metodi sincronizzati in una riga causerà un deadlock?
- 22. Applicazione di filtri jinja2 a un blocco?
- 23. Leggere e scrivere su un file mantenendo il blocco
- 24. File di testo di blocco PHP per la modifica?
- 25. C'è un modo per condividere un blocco (ad esempio un file di blocco) tra processi R?
- 26. Come estrarre un singolo blocco di byte da un file?
- 27. Sostituire blocco delimitata di testo in file con il contenuto di un altro file
- 28. hsqldb: acquisizione del blocco del database durante la connessione a un file db
- 29. Play Framework 2.X e chiamata al database di blocco
- 30. Dimensione blocco file system