小的 C# 文件创建类
介绍一个小型类,它可以帮助您创建包含字符串/二进制数据的临时文件,并自动清理该文件。
引言
在本文中,我将介绍一个小型类,您可以使用它将字符串或二进制数据写入临时文件,并在使用后自动删除该文件。 简而言之,您可以使用该类执行以下步骤:
- 在磁盘上创建包含内存中字符串(或二进制对象)内容的临时文件
- 对/使用临时文件执行操作
- 从磁盘删除临时文件
本文是我的文章 "一个小型 C# 文件克隆类" 的后续文章。
背景
我创建了这个类,因为我正在使用一个需要文件作为参数的第三方库,但我只有内存中的数据(在 string
类中)。
与其手动创建文件、将文件写入磁盘、将其传递给函数,然后再次手动清理文件(并注意可能的异常),我想要一个非常简单的解决方案。 我希望这个类就是这样的解决方案。
因此,我创建了一个实现 IDisposable 接口的类,在构造函数中创建包含内存数据的临时文件,并在析构函数或通过 IDisposable.Dispose 方法再次删除临时文件。
Using the Code
写入文件
使用该代码应该非常简单。只需在 using
指令中创建一个 ZetaTemporaryFileCreator
类的实例,并将要写入文件的的数据传递给构造函数即可。
using ( var tfc = new ZetaTemporaryFileCreator( "Some text to write to the file." ) )
{
// ...Do some operations on the file...
myFunctionThatOperatesOnAFileRatherThanOnInMemoryData( tfc.FilePath );
}
using
块确保即使发生异常,临时文件也会被再次删除。
从文件读取
您还可以将该代码用于写入文件并稍后将结果读回内存的函数。
使用无参数构造函数以及 FileContentString
和 FileContentBinary
属性中的一个(或两个)。
using ( var tfc = new ZetaTemporaryFileCreator() )
{
// ...Call a function that generates data to a file...
myFunctionThatWritesDataToAFileRatherThanIntoMemory( tfc.FilePath );
// ...Further process the data from the file in memory...
myFunctionThatOperatesOnInMemoryData( tfc.FileContentString );
}
同样,using
块确保即使发生异常,临时文件也会被再次删除。
关注点
在本文中,我向您展示了一个小型类,该类允许自动创建和删除临时文件。 下载包含您可以简单地放入自己项目中的完整 C# 类。
如果您有任何问题、意见和反馈(我非常乐意收到!),请使用文章底部的评论区。 谢谢!
历史
- 2010-09-12 - 添加了无参数构造函数以及属性
FileContentString
和FileContentBinary
,用于从文件读取到内存 - 2010-09-06 - CodeProject.com 的首次发布