Freigeben über


TempFileCollection Klasse

Definition

Stellt eine Auflistung temporärer Dateien dar.

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
Vererbung
TempFileCollection
Attribute
Implementiert

Beispiele

Das folgende Beispiel zeigt die Verwendung der TempFileCollection -Klasse und der AddExtension Methoden und 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

Hinweise

TempFileCollection kann verwendet werden, um eindeutige Dateinamen zu generieren und eine Liste von Dateien nachzuverfolgen. Dies kann für ICodeCompiler Implementierer nützlich sein, wenn sie eine Liste der vom Compiler generierten Zwischendateien verwalten, die nach der Verwendung manchmal gelöscht werden.

Verwenden Sie einen entsprechend überladenen Konstruktor, um ein Verzeichnis anzugeben, in dem eindeutige temporäre Dateinamen generiert werden sollen. Sie können auch eine Konstruktorüberladung verwenden, um anzugeben, ob dateien, die der Auflistung hinzugefügt wurden, gelöscht werden sollen, wenn die AddFileAddExtension -Methode oder nicht anders angegeben wird, wenn die Auflistung entfernt oder die Delete -Methode aufgerufen wird.

Eine Datei in einem beliebigen Verzeichnis kann einer Instanz von mit der TempFileCollectionAddFile -Methode hinzugefügt werden.

Um einen eindeutigen Namen für eine temporäre Datei mit einer bestimmten Dateierweiterung zu generieren, rufen Sie AddExtension auf, und geben Sie die Erweiterung des zu generierenden Dateinamens an. Die AddExtension -Methode gibt eine Zeichenfolge zurück, die aus einem vollständigen Pfad zu einem Dateinamen der angegebenen Erweiterung in dem von der TempDir -Eigenschaft angegebenen Verzeichnis besteht. Die AddExtension -Methode gibt nur einen eindeutigen Dateinamen pro Dateinamenerweiterung zurück.

Sowohl die AddFileAddExtension - als auch -Methode verfügen über Überladungen, mit denen Sie angeben können, ob die Dateien gelöscht werden sollen, wenn die Auflistung entfernt oder die Delete Methode aufgerufen wird.

Die Delete -Methode löscht alle Dateien in der Auflistung mit Ausnahme der Dateien, die als beibehalten gekennzeichnet sind.

Die BasePath -Eigenschaft gibt einen vollständigen Pfad zum Basisdateinamen ohne Dateinamenerweiterung an, der zum Generieren der von der AddExtension Methode zurückgegebenen Dateinamen verwendet wird.

Hinweis

Diese Klasse enthält eine Linkanforderung und eine Vererbungsanforderung auf Klassenebene, die für alle Member gilt. Ein SecurityException wird ausgelöst, wenn entweder der unmittelbare Aufrufer oder die abgeleitete Klasse keine voll vertrauenswürdige Berechtigung hat. Ausführliche Informationen zu Sicherheitsanforderungen finden Sie unter Verknüpfen von Anforderungen und Erbansprüchen.

Konstruktoren

TempFileCollection()

Initialisiert eine neue Instanz der TempFileCollection-Klasse mit Standardwerten.

TempFileCollection(String)

Initialisiert eine neue Instanz der TempFileCollection-Klasse mit dem angegebenen temporären Verzeichnis, für das festgelegt wurde, dass temporäre Dateien nach der Generierung und Verwendung standardmäßig gelöscht werden.

TempFileCollection(String, Boolean)

Initialisiert eine neue Instanz der TempFileCollection-Klasse mit den Angaben für das temporäre Verzeichnis und dem Wert, der angibt, ob die temporären Dateien nach der Generierung und Verwendung standardmäßig gelöscht oder beibehalten werden.

Eigenschaften

BasePath

Ruft den vollständigen Pfad des Basisdateinamens ohne Dateinamenerweiterung im Pfad des temporären Verzeichnisses ab, das zum Generieren von temporären Dateinamen für die Auflistung verwendet wird.

Count

Ruft die Anzahl der Dateien in der Auflistung ab.

KeepFiles

Ruft einen Wert ab, der angibt, ob die Dateien beim Aufrufen der Delete()-Methode oder beim Freigeben der Auflistung standardmäßig beibehalten werden sollen, oder legt diesen fest.

TempDir

Ruft das temporäre Verzeichnis zum Speichern der temporären Dateien ab.

Methoden

AddExtension(String)

Fügt der Auflistung einen Dateinamen mit der angegebenen Dateinamenerweiterung hinzu.

AddExtension(String, Boolean)

Fügt der Auflistung einen Dateinamen mit der angegebenen Dateinamenerweiterung unter Verwendung des angegebenen Wertes hinzu, der angibt, ob die Datei gelöscht oder beibehalten werden soll.

AddFile(String, Boolean)

Fügt der Auflistung die Datei mit dem angegebenen Wert hinzu, der festlegt, ob die Datei nach dem Löschen der Auflistung oder dem Aufruf der Delete()-Methode beibehalten werden soll.

CopyTo(String[], Int32)

Kopiert die Member der Auflistung beginnend am angegebenen Index in die angegebene Zeichenfolge.

Delete()

Löscht die temporären Dateien in dieser Auflistung, die nicht für das Beibehalten markiert wurden.

Dispose(Boolean)

Gibt die von TempFileCollection verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
Finalize()

Versucht, die temporären Dateien zu löschen, bevor dieses Objekt von der Garbage Collection freigegeben wird.

GetEnumerator()

Ruft einen Enumerator ab, der die Member der Auflistung aufzählen kann.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

ICollection.CopyTo(Array, Int32)

Kopiert die Elemente dieser Auflistung in ein Array, wobei am angegebenen Index des Zielarrays begonnen wird.

ICollection.Count

Ruft die Anzahl der Elemente in der Auflistung ab.

ICollection.IsSynchronized

Ruft einen Wert ab, der angibt, ob der Zugriff auf die Auflistung synchronisiert ist (threadsicher).

ICollection.SyncRoot

Ruft ein Objekt ab, mit dem der Zugriff auf die Auflistung synchronisiert werden kann.

IDisposable.Dispose()

Führt anwendungsspezifische Aufgaben durch, die mit der Freigabe, der Zurückgabe oder dem Zurücksetzen von nicht verwalteten Ressourcen zusammenhängen.

IEnumerable.GetEnumerator()

Gibt einen Enumerator zurück, der eine Auflistung durchläuft.

Erweiterungsmethoden

Cast<TResult>(IEnumerable)

Wandelt die Elemente eines IEnumerable in den angegebenen Typ um

OfType<TResult>(IEnumerable)

Filtert die Elemente eines IEnumerable anhand eines angegebenen Typs

AsParallel(IEnumerable)

Ermöglicht die Parallelisierung einer Abfrage.

AsQueryable(IEnumerable)

Konvertiert einen IEnumerable in einen IQueryable.

Gilt für: