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 класса и AddExtensionAddFile методов.
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, Boolean) |
Инициализирует новый экземпляр класса с помощью указанного TempFileCollection временного каталога и указанного значения, указывающего, следует ли хранить или удалять временные файлы после их создания и использования по умолчанию. |
| TempFileCollection(String) |
Инициализирует новый экземпляр класса с помощью указанного TempFileCollection временного каталога, который устанавливается для удаления временных файлов после их создания и использования по умолчанию. |
Свойства
| Имя | Описание |
|---|---|
| BasePath |
Получает полный путь к базовому имени файла без расширения имени файла на пути к временному каталогу, который используется для создания временных имен файлов для коллекции. |
| Count |
Возвращает количество файлов в коллекции. |
| KeepFiles |
Возвращает или задает значение, указывающее, следует ли хранить файлы по умолчанию при Delete() вызове метода или удалении коллекции. |
| TempDir |
Возвращает временный каталог для хранения временных файлов. |
Методы
| Имя | Описание |
|---|---|
| AddExtension(String, Boolean) |
Добавляет имя файла с указанным расширением имени файла в коллекцию, используя указанное значение, указывающее, следует ли удалить или сохранить файл. |
| AddExtension(String) |
Добавляет имя файла с указанным расширением имени файла в коллекцию. |
| 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() |
Возвращает перечислитель, который выполняет итерацию по коллекции. |
Методы расширения
| Имя | Описание |
|---|---|
| AsParallel(IEnumerable) |
Включает параллелизацию запроса. |
| AsQueryable(IEnumerable) |
Преобразует IEnumerable в IQueryable. |
| Cast<TResult>(IEnumerable) |
Приведение элементов IEnumerable к указанному типу. |
| OfType<TResult>(IEnumerable) |
Фильтрует элементы IEnumerable на основе указанного типа. |