Я бы использовал класс .NET TempFileCollection
, поскольку он встроен, доступен в старых версиях .NET, реализует интерфейс IDisposable
и, таким образом, очищает себя после использования, например. в сочетании с ключевым словом "using"
.
Вот пример, который извлекает текст из встроенного ресурса (добавлен через страницы свойств проектов -> вкладка Ресурсы, как описано здесь: Как встроить текстовый файл в сборку .NET? , затем установить на "EmbeddedResource"
в настройках свойств встроенного файла).
// Extracts the contents of the embedded file, writes them to a temp file, executes it, and cleans up automatically on exit.
private void ExtractAndRunMyScript()
{
string vbsFilePath;
// By default, TempFileCollection cleans up after itself.
using (var tempFiles = new System.CodeDom.Compiler.TempFileCollection())
{
vbsFilePath= tempFiles.AddExtension("vbs");
// Using IntelliSense will display the name, but it's the file name
// minus its extension.
System.IO.File.WriteAllText(vbsFilePath, global::Instrumentation.Properties.Resources.MyEmbeddedFileNameWithoutExtension);
RunMyScript(vbsFilePath);
}
System.Diagnostics.Debug.Assert(!File.Exists(vbsFilePath), @"Temp file """ + vbsFilePath+ @""" has not been deleted.");
}