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

一个小巧的 C# 文件克隆类

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.74/5 (9投票s)

2010 年 7 月 5 日

CPOL

1分钟阅读

viewsIcon

44157

downloadIcon

770

介绍一个可以帮助您创建文件自动副本,并自动清理它们的类。

引言

本文展示了一个可以在各种项目中使用的类,以简化以下过程:

  1. 创建文件的临时副本。
  2. 对临时文件执行操作。
  3. 删除临时文件的副本。

背景

我创建这个类是为了一个 Web 应用程序项目,在该项目中,我将一些 Microsoft Excel 文档读取到内存中,在内存中操作 Excel 文档,最后将它们发送到用户的 Web 浏览器。

通常,这项任务就像执行一些 File 操作并获取文件的 Stream 对象一样简单。当文件在 Microsoft Excel 中打开时,这很好用。当它打开时,Excel 会独占锁定它,导致我在尝试访问文件流时代码中出现异常。

仍然有效的方法是复制文件。

因此,我创建了一个实现 IDisposable 接口的类,在构造函数中创建文件的临时副本,并在析构函数或通过 IDisposable.Dispose 方法中再次删除临时文件。

Using the Code

使用这段代码非常简单。与其编写如下代码:

// ...Do some operations to the file...
myFunctionThatOperatesOnTheFile( @"C:\Some\Path\File.xlsx" );

您编写如下代码:

using ( var tfc = new ZetaTemporaryFileCloner( @"C:\Some\Path\File.xlsx" ) )
{
    // ...Do some operations to the file...
    myFunctionThatOperatesOnTheFile( tfc.FilePath );
}

很简单,不是吗?

关注点

在本文中,我向您展示了一个非常小的类,它允许自动创建和删除临时文件。下载包含完整的 C# 类,您可以将其直接放入您自己的项目中。

如果您有任何问题、评论或反馈(我很乐意收到!),请使用本文底部的评论区。谢谢!

历史

© . All rights reserved.