65.9K
CodeProject 正在变化。 阅读更多。
Home

小的 C# 文件创建类

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.83/5 (9投票s)

2010年9月6日

CPOL

2分钟阅读

viewsIcon

41768

downloadIcon

684

介绍一个小型类,它可以帮助您创建包含字符串/二进制数据的临时文件,并自动清理该文件。

引言

在本文中,我将介绍一个小型类,您可以使用它将字符串或二进制数据写入临时文件,并在使用后自动删除该文件。 简而言之,您可以使用该类执行以下步骤:

  1. 在磁盘上创建包含内存中字符串(或二进制对象)内容的临时文件
  2. 对/使用临时文件执行操作
  3. 从磁盘删除临时文件

本文是我的文章 "一个小型 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 块确保即使发生异常,临时文件也会被再次删除。

从文件读取

您还可以将该代码用于写入文件并稍后将结果读回内存的函数。

使用无参数构造函数以及 FileContentStringFileContentBinary 属性中的一个(或两个)。

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 - 添加了无参数构造函数以及属性 FileContentStringFileContentBinary,用于从文件读取到内存
  • 2010-09-06 - CodeProject.com 的首次发布
© . All rights reserved.