TempFileCollection Класс

Определение

Представляет коллекцию временных файлов.

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
Наследование
TempFileCollection
Атрибуты
Реализации

Примеры

В следующем примере показано использование TempFileCollection класса и AddExtension методов и 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

Комментарии

TempFileCollection можно использовать для создания уникальных имен файлов и отслеживания списка файлов. Это может быть полезно для ICodeCompiler разработчиков при управлении списком созданных компилятором промежуточных файлов, которые иногда удаляются после использования.

Чтобы указать каталог для создания уникальных временных имен файлов, используйте соответствующим образом перегруженный конструктор. Можно также использовать перегрузку конструктора, чтобы указать, следует ли удалять файлы, добавленные в коллекцию, если не указано иное при использовании AddFile методов или AddExtension , при удалении коллекции или вызове Delete метода .

Файл в любом каталоге можно добавить в экземпляр с TempFileCollection помощью AddFile метода .

Чтобы создать уникальное имя для временного файла определенного расширения, вызовите AddExtension и укажите расширение создаваемого файла. Метод AddExtension возвращает строку, состоящую из полного пути к имени файла указанного расширения в каталоге, указанном свойством TempDir . Метод AddExtension возвращает только одно уникальное имя файла для каждого расширения имени файла.

AddFile Оба метода и AddExtension имеют перегрузки, позволяющие указать, следует ли удалять файлы при удалении коллекции или вызове Delete метода .

Метод Delete удалит все файлы в коллекции, кроме тех, которые помечены для хранения.

Свойство BasePath указывает полный путь к базовому имени файла без расширения, используемого для создания имен файлов, возвращаемых методом AddExtension .

Примечание

Этот класс содержит требования связывания и наследования на уровне класса, которые применяются ко всем элементам. Если непосредственно вызывающий оператор или производный класс не имеет разрешения полного доверия, возникает исключение SecurityException. Дополнительные сведения о требованиях к безопасности см. в разделах Требования ссылок и Требования наследования.

Конструкторы

TempFileCollection()

Инициализирует новый экземпляр класса TempFileCollection со значениями по умолчанию.

TempFileCollection(String)

Инициализирует новый экземпляр TempFileCollection, используя указанный временный каталог, из которого временные файлы будут удалены по умолчанию после создания и использования.

TempFileCollection(String, Boolean)

Инициализирует новый экземпляр TempFileCollection, используя указанный временный каталог и значение, показывающее, следует ли по умолчанию сохранить или удалить временные файлы после создания и использования.

Свойства

BasePath

Получает полный путь к базовому имени файла, без расширения имени файла, по пути временного каталога, используемого при создании имен временных файлов для коллекции.

Count

Получает число файлов в коллекции.

KeepFiles

Возвращает или задает значение, показывающее, следует ли по умолчанию сохранять файлы при вызове метода Delete() или удалении коллекции.

TempDir

Получает временный каталог для хранения временных файлов.

Методы

AddExtension(String)

Добавляет к коллекции имя файла с указанным расширением имени файла.

AddExtension(String, Boolean)

Добавляет к коллекции имя файла с указанным расширением имени файла, используя указанное значение, показывающее, удалить файл или сохранить.

AddFile(String, Boolean)

Добавляет к коллекции указанный файл, используя указанное значение, показывающее, следует ли оставлять файл после удаления коллекции или при вызове метода Delete().

CopyTo(String[], Int32)

Копирует члены коллекции в указанную строку начиная с указанного индекса.

Delete()

Удаляет из данной коллекции временные файлы, не помеченные для сохранения.

Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом TempFileCollection, а при необходимости освобождает также управляемые ресурсы.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
Finalize()

Пытается удалить временные файлы перед тем, как данный объект будет утилизирован при сборке мусора.

GetEnumerator()

Получает перечислитель, который перечисляет члены коллекции.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

ICollection.CopyTo(Array, Int32)

Копирует элементы коллекции в массив начиная с заданного индекса в целевом массиве.

ICollection.Count

Возвращает количество элементов, содержащихся в коллекции.

ICollection.IsSynchronized

Возвращает значение, указывающее, является ли доступ к коллекции синхронизированным (потокобезопасным).

ICollection.SyncRoot

Возвращает объект, который можно использовать для синхронизации доступа к коллекции.

IDisposable.Dispose()

Выполняет определяемые приложением задачи, связанные с удалением, высвобождением или сбросом неуправляемых ресурсов.

IEnumerable.GetEnumerator()

Возвращает перечислитель, который осуществляет итерацию по коллекции.

Методы расширения

Cast<TResult>(IEnumerable)

Приводит элементы объекта IEnumerable к заданному типу.

OfType<TResult>(IEnumerable)

Выполняет фильтрацию элементов объекта IEnumerable по заданному типу.

AsParallel(IEnumerable)

Позволяет осуществлять параллельный запрос.

AsQueryable(IEnumerable)

Преобразовывает коллекцию IEnumerable в объект IQueryable.

Применяется к