2009-02-17 5 views

risposta

10

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.

3

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.
1

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 
}