Condividi tramite


TempFileCollection Classe

Definizione

Rappresenta una raccolta di file temporanei.

public ref class TempFileCollection : IDisposable, System::Collections::ICollection
public class TempFileCollection : IDisposable, System.Collections.ICollection
[System.Serializable]
public class TempFileCollection : IDisposable, System.Collections.ICollection
type TempFileCollection = class
    interface ICollection
    interface IEnumerable
    interface IDisposable
[<System.Serializable>]
type TempFileCollection = class
    interface ICollection
    interface IEnumerable
    interface IDisposable
Public Class TempFileCollection
Implements ICollection, IDisposable
Ereditarietà
TempFileCollection
Attributi
Implementazioni

Esempio

Nell'esempio seguente viene illustrato l'uso della TempFileCollection classe e dei AddExtension metodi e AddFile .

using System;
using System.CodeDom.Compiler;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        // Create a directory in the current working directory.
        Directory.CreateDirectory("testDir");
        TempFileCollection tfc = new TempFileCollection("testDir", false);
        // Returns the file name relative to the current working directory.
        string fileName = tfc.AddExtension("txt");
        Console.WriteLine(fileName);
        // Name a file in the test directory.
        string file2Name = "testDir\\test.txt";
        // Add the file to the temp directory and indicate it is to be kept.
        tfc.AddFile(file2Name, true);
        Console.WriteLine(tfc.Count);
        // Create and use the test files.
        FileStream fs1 = File.OpenWrite(fileName);
        FileStream fs2 = File.OpenWrite(file2Name);
        StreamWriter sw1 = new StreamWriter(fs1);
        StreamWriter sw2 = new StreamWriter(fs2);
        sw1.WriteLine("Test string");
        sw2.WriteLine("Test string");
        sw1.Close();
        sw2.Close();
        tfc.Delete();
        Console.WriteLine(tfc.Count);
        try
        {
            // This call should succeed.
            File.OpenRead(file2Name);
            // This call should fail.
            File.OpenRead(fileName);
        }
        catch (FileNotFoundException e)
        {
            Console.WriteLine(e.Message);
        }
    }
}
Imports System.CodeDom.Compiler
Imports System.IO



Class Program
    
    Shared Sub Main(ByVal args() As String) 
        ' Create a directory in the current working directory.
        Directory.CreateDirectory("testDir")
        Dim tfc As New TempFileCollection("testDir", False)
        ' Returns the file name relative to the current working directory.
        Dim fileName As String = tfc.AddExtension("txt")
        Console.WriteLine(fileName)
        ' Name a file in the test directory.
        Dim file2Name As String = "testDir\test.txt"
        ' Add the file to the temp directory and indicate it is to be kept.
        tfc.AddFile(file2Name, True)
        Console.WriteLine(tfc.Count)
        ' Create and use the test files.
        Dim fs1 As FileStream = File.OpenWrite(fileName)
        Dim fs2 As FileStream = File.OpenWrite(file2Name)
        Dim sw1 As New StreamWriter(fs1)
        Dim sw2 As New StreamWriter(fs2)
        sw1.WriteLine("Test string")
        sw2.WriteLine("Test string")
        sw1.Close()
        sw2.Close()
        tfc.Delete()
        Console.WriteLine(tfc.Count)
        Try
            ' This call should succeed.
            File.OpenRead(file2Name)
            ' This call should fail.
            File.OpenRead(fileName)
        Catch e As FileNotFoundException
            Console.WriteLine(e.Message)
        End Try
    
    End Sub
End Class

Commenti

TempFileCollection può essere usato per generare nomi di file univoci e per tenere traccia di un elenco di file. Ciò può essere utile per gli ICodeCompiler implementatori quando si gestisce un elenco di file intermedi generati dal compilatore, che a volte vengono eliminati dopo l'uso.

Per specificare una directory in cui generare nomi di file temporanei univoci, usare un costruttore di overload appropriato. È anche possibile utilizzare un overload del costruttore per indicare se i file aggiunti alla raccolta devono, se non specificato diversamente quando si usano i AddFile metodi o AddExtension , essere eliminati quando la raccolta viene eliminata o viene chiamato il Delete metodo .

Un file in qualsiasi directory può essere aggiunto a un'istanza di TempFileCollection utilizzando il AddFile metodo .

Per generare un nome univoco per un file temporaneo di una determinata estensione di file, chiamare AddExtension e specificare l'estensione del nome file da generare. Il AddExtension metodo restituirà una stringa costituita da un percorso completo di un nome file dell'estensione specificata nella directory specificata dalla TempDir proprietà . Il AddExtension metodo restituirà solo un nome di file univoco per ogni estensione del nome file.

Entrambi i AddFile metodi e AddExtension dispongono di overload che consentono di specificare se i file devono essere eliminati quando la raccolta viene eliminata o viene chiamato il Delete metodo .

Il Delete metodo eliminerà tutti i file nella raccolta, ad eccezione di quelli contrassegnati per essere conservati.

La BasePath proprietà indica un percorso completo del nome del file di base, senza estensione di file, utilizzato per generare i nomi di file restituiti dal AddExtension metodo .

Nota

Questa classe contiene una richiesta di collegamento e una richiesta di ereditarietà a livello di classe che si applica a tutti i membri. Viene SecurityException generata un'eccezione quando il chiamante immediato o la classe derivata non dispone dell'autorizzazione di attendibilità totale. Per informazioni dettagliate sulle richieste di sicurezza, vedere Richieste di collegamento e richieste di ereditarietà.

Costruttori

TempFileCollection()

Inizializza una nuova istanza della classe TempFileCollection con i valori predefiniti.

TempFileCollection(String)

Per impostazione predefinita, inizializza una nuova istanza della classe TempFileCollection utilizzando la directory temporanea specificata impostata per l'eliminazione dei file temporanei dopo che sono stati generati e utilizzati.

TempFileCollection(String, Boolean)

Per impostazione predefinita, inizializza una nuova istanza della classe TempFileCollection utilizzando la directory temporanea specificata e il valore specificato che indica se conservare o eliminare i file temporanei dopo che sono stati generati e utilizzati.

Proprietà

BasePath

Ottiene il percorso completo del nome di file di base privo di estensione nel percorso della directory temporanea utilizzata per generare nomi di file temporanei per l'insieme.

Count

Ottiene il numero di file nell'insieme.

KeepFiles

Per impostazione predefinita, ottiene o imposta un valore che indica se conservare i file quando viene chiamato il metodo Delete() o viene eliminato l'insieme.

TempDir

Ottiene la directory temporanea in cui devono essere memorizzati i file temporanei.

Metodi

AddExtension(String)

Aggiunge all'insieme un nome file con l'estensione specificata.

AddExtension(String, Boolean)

Aggiunge all'insieme un nome file con l'estensione specificata, utilizzando il valore specificato che indica se il file debba essere eliminato o conservato.

AddFile(String, Boolean)

Aggiunge all'insieme il file specificato, utilizzando il valore specificato che indica se il file debba essere conservato quando l'insieme viene eliminato o quando viene chiamato il metodo Delete().

CopyTo(String[], Int32)

Copia i membri dell'insieme nella stringa specificata, a partire dall'indice specificato.

Delete()

Elimina dall'insieme i file temporanei non contrassegnati per la conservazione.

Dispose(Boolean)

Rilascia le risorse non gestite usate da TempFileCollection e, facoltativamente, le risorse gestite.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
Finalize()

Tenta di eliminare i file temporanei prima che questo oggetto venga recuperato dalla procedura di Garbage Collection.

GetEnumerator()

Ottiene un enumeratore in grado di enumerare i membri dell'insieme.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

ICollection.CopyTo(Array, Int32)

Copia gli elementi dell'insieme in una matrice, iniziando dall'indice specificato della matrice di destinazione.

ICollection.Count

Ottiene il numero di elementi contenuti nella raccolta.

ICollection.IsSynchronized

Ottiene un valore che indica se l'accesso alla raccolta è sincronizzato (thread-safe).

ICollection.SyncRoot

Ottiene un oggetto che può essere usato per sincronizzare l'accesso alla raccolta.

IDisposable.Dispose()

Esegue attività definite dall'applicazione, come rilasciare o reimpostare risorse non gestite.

IEnumerable.GetEnumerator()

Restituisce un enumeratore che consente di eseguire l'iterazione di una raccolta.

Metodi di estensione

Cast<TResult>(IEnumerable)

Esegue il cast degli elementi di un oggetto IEnumerable nel tipo specificato.

OfType<TResult>(IEnumerable)

Filtra gli elementi di un oggetto IEnumerable in base a un tipo specificato.

AsParallel(IEnumerable)

Consente la parallelizzazione di una query.

AsQueryable(IEnumerable)

Converte un oggetto IEnumerable in un oggetto IQueryable.

Si applica a