处理临时文件流

2023-11-22

假设我想定义一个 TempFileStream 类,它使用 Path.GetTempFileName() 方法创建临时文件。当不再需要 TempFileStream 的对象时,必须删除临时文件,例如关闭或处置:

class TempFileStream: FileStream
{
  string m_TempFileName = Path.GetTempFileName();
  public TempFileStream(FileMode fileMode): base(m_TempFileName,fileMode) {}

  /// ...

 public ovverride Dispose(bool disposing)
 {
   /// ???
 }

}   

我应该如何简单、安全地实施这个?


试试这个:

public class TempFileStream : FileStream
{
    public TempFileStream()
        : base(Path.GetTempFileName(), FileMode.Create, FileAccess.ReadWrite, FileShare.Read, 4096, FileOptions.DeleteOnClose) { }
    public TempFileStream(FileAccess access)
        : base(Path.GetTempFileName(), FileMode.Create, access, FileShare.Read, 4096, FileOptions.DeleteOnClose) { }
    public TempFileStream(FileAccess access, FileShare share)
        : base(Path.GetTempFileName(), FileMode.Create, access, share, 4096, FileOptions.DeleteOnClose) { }
    public TempFileStream(FileAccess access, FileShare share, int bufferSize)
        : base(Path.GetTempFileName(), FileMode.Create, access, share, bufferSize, FileOptions.DeleteOnClose) { }
}

FileOptions.DeleteOnClose 选项将确保操作系统在您关闭文件时自动删除临时文件。不需要特殊的 Dispose 方法,因为一切都为您处理好了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

处理临时文件流 的相关文章

  • Windows 窗体中的切换开关控件

    我正在设计一个拨动开关控制使用CheckBox 但目前我的控件只能画一个圆圈 如何绘制如下图所示的圆形形状 以及如何根据控件的值更改圆圈的位置以表示选中和未选中的状态 如下图所示 这是我的代码 public class MyCheckBox
  • 不同翻译单元中字符串文字的内存地址是否相同?

    假设我们有以下 cpp 文件 include
  • 如何设置 web.config 文件以显示完整的错误消息

    我在 Windows Azure 上部署了 MVC 3 应用程序 但现在当我通过请求时staging url它告诉我 很抱歉 在执行您的要求时发生了一个错误 现在我想查看完整的错误消息 默认情况下由于某些安全原因它会隐藏该消息 我知道我们可
  • C# SMO 远程数据库备份到本地机器

    我有一个执行 SQL 数据库备份和恢复的应用程序 这在本地计算机上运行良好 但是如果我针对另一台计算机上托管的 SQL 服务器运行此应用程序 则会出现以下错误 Microsoft SqlServer Management Smo Faile
  • 使用 C# 启动 Outlook

    我可以让 C 在代码中启动 Outlook 吗 在 VB6 中 我们使用对象 Outlook Application 并编写 Set oOutlook CreateObject Outlook Application Set oNameSp
  • 使用 Rhino Mocks 模拟集合

    所以我猜这是很多人想做的事情 模拟集合 过去我用 Rhino 做过这样的事情 var col mock MockRepository GenerateMock
  • std::string substr 方法问题

    你好 我正在写这个方法 我希望它从给定缓冲区中提取给定位置的一部分 我有一个像这样的字符串something one something two我想要得到 一个 这是我的想法 static std string Utils getHeade
  • C#:如何确定坐标是否在美国大陆?

    我正在获取坐标 纬度 经度 我想检查这些坐标是否位于美国大陆 有没有一种简单的方法可以在 C 中实现 我可以将坐标转换为 MGRS 或 UTM 谢谢 哇哦 他们专门为你准备了 http econym org uk gmap states x
  • autofac 中的条件组件注册

    是否可以根据其他组件的状态有条件地注册组件 就像是 ContainerBuilder RegisterConditionally
  • 如何检查我的程序是否有数据通过管道传输到其中

    我正在编写一个应该通过标准输入读取输入的程序 所以我有以下结构 FILE fp stdin 但是 如果用户没有将任何内容通过管道传输到程序中 这就会挂起 我如何检查用户是否确实将数据通过管道传输到我的程序中 例如 gunzip c file
  • 将 jstring 转换为 QString

    我正在调用一个返回字符串的 Java 函数 QAndroidJniObject obj QAndroidJniObject callStaticObjectMethod
  • 在另一个类中使用一个类对象?

    我正在用 c 制作应用程序 在该应用程序中 我有一个类DataCapture cs 在同一个应用程序中 我有另一个类Listner cs 在 Listner cs 类中 我想使用以下对象DataCapture cs不创建新对象DataCap
  • ld: 无法对非 PE 输出文件执行 PE 操作错误

    我是操作系统编程的新手 我正在读一本书 其中给出了一个简单的内核示例 如下所示 main char video memory 0xb8000 video memory X 为了编译这个名为 kernel c 的文件 我在 Windows 7
  • 如何获取 EF 中的实体更改增量?

    我只需要获取已更改字段的列表 数据存储区是 ssce 因此没有可用的触发器 EF 是否支持获取列表或构建通用组件 根据上下文的类型和生成的实体 您可以通过多种不同的方式来完成此操作 如果对象继承自 Entity 或 POCO 您可以使用Ob
  • 使用智能指针在大型对象集合中创建多个索引

    我正在为一个大型对象集合创建多个索引 即使用不同的键 对象可以改变 集合可以缩小和增长 到目前为止我的想法 保留某种指向对象的指针的多个集合 使用set代替map以获得更好的封装 使用 unordered set 可以很好地扩展大型数据集
  • 通过 C++ 标头在 C++ 和 C# 中使用枚举

    我有一个用 C 编写的服务器 位于命名管道的末端 嗯 提供服务 可以发送到服务器的命令在位于头文件中的枚举中定义 enum e doThing1 e doThing2 e doLastThing 所需枚举的值被放入发送到服务器的消息的第一个
  • 我的 C 程序无法运行,并显示“无法执行二进制文件:Exec 格式错误”

    我刚刚从 C 开始 我试图编译下面的代码并执行它 但出现错误 也在运行sizeBS 或数据堆栈中没有显示任何内容 include
  • GCC编译非常慢(文件大)

    我正在尝试编译一个大的 C 文件 专门用于 MATLAB mexing C 文件大约 20 MB 可用来自 GCC 错误跟踪器 https gcc gnu org bugzilla attachment cgi id 36632如果你想玩一
  • 您可以从 AuthorizeAttribute 返回 HTTP 响应而不引发异常吗?

    我在各种控制器上使用 AuthorizeAttribute 可能需要根据请求本身的某些属性返回 403 或 429 请求过多 我完全在自定义 OnAuthorization 实现中实现了它 然后在必要时抛出一个带有适当响应代码的新 Http
  • 编写一个转储屏幕像素的 RDP 客户端

    我想在中实现 RDP 客户端C 它能够获取屏幕所有像素的颜色值并将它们转储到文件中 我知道这在概念上与 RDP 的工作方式不同 但我的应用程序需要它 我正在尝试利用freerdp https github com FreeRDP FreeR

随机推荐

  • IQueryable、List、IEnumerator 之间的区别?

    我想知道 IQueryable List IEnumerator 之间有什么区别以及何时应该使用它们 例如 当使用 Linq to SQL 时 我会这样做 public List
  • 将 Google 表中的日期区域设置从公历转换为 Jalali 日历

    我想知道谷歌表格中是否可以使用函数将公历转换为贾拉利历 事实上 我有一些日期 例如 February 20 2021 4 30 AM 我需要以 Jalali 格式 没有时间 在其前面的单元格中显示此日期 即 1399 12 02 or Es
  • Node.js 什么时候会阻塞?

    我已经使用 Node js 一段时间了 我刚刚意识到它可能会阻塞 我就是无法理解 Node js 在什么情况下会发生阻塞 因此 Node js 是单线程的 因为 i Javascript 是并且 ii 避免了所有多线程陷阱 要同时做很多事情
  • Gitlab 与 Github 相比有何不同?

    我试图从经验丰富的开发人员的角度来理解两者的优缺点 当然 Github 是两者中使用更广泛的一个 但如果有人能概括性地解释一下他们发现其中哪一个更好 缺乏什么 那就太好了 顺便说一句 我现在使用 Github Gitlab 是一个自托管的
  • 退出iPhone应用程序的正确方法?

    我正在编写一个 iPhone 应用程序 由于某些用户操作 我需要强制它退出 清理应用程序分配的内存后 调用什么适当的方法来终止应用程序 在 iPhone 上 没有退出应用程序的概念 导致应用程序退出的唯一操作是触摸手机上的 主页 按钮 而开
  • Azure Active Directory 是否具有 OAuth/OpenID Connect 令牌自省端点?

    Azure Active Directory 是否具有自省端点 如中定义 RFC7662 用于验证 OpenID Connect 或 OAuth 访问令牌 否 您可以通过以下方式检查支持的所有端点OpenID 提供商配置对于 Azure A
  • 如何计算直方图的标准差? (Python、Matplotlib)

    假设我有一个数据集并使用 matplotlib 绘制该数据集的直方图 n bins patches plt hist data normed 1 如何使用以下公式计算标准差n and bins价值观hist 回报 我目前正在这样做来计算平均
  • Android 触摸秤按钮

    我知道如何将按钮缩放到确定的值 但是有没有办法在用户触摸按钮时每次增加 减小按钮大小 像这样的东西 Button myButton Button findViewById R id myButton myButton setOnTouchL
  • 检索泛型方法的正确重载的 MethodInfo

    我的这种类型包含一个泛型方法的两个重载 我喜欢检索其中一个重载 使用Func
  • 为什么“python -m pip install ...”需要“-m”?

    我最近使用pip安装了requestspython 2 7 中的包 但是为了做到这一点 我必须使用 python m pip install requests 而不仅仅是 python pip install requests 这给了我一个
  • jquery .bind() 是否已弃用?

    是 jquerybind 已弃用还是可以安全使用 我在评论和答案中看到很多关于 bind 被弃用的评论 例如 Jquery Event 检测 div 的 html text 的更改 是否有 JavaScript jQuery DOM 更改侦
  • 如何将 DataGridView 定位到特定行(以便所选行位于底部)?

    作为一个类似的问题这个问题 我还有一个带有 DataGridView 的应用程序 我想定位行 使特定行位于列表可见部分的底部 这是对将一行向下移动一位的按钮单击的响应 我想保留我正在移动的行上的选择 我已经让这部分工作 如果有很多行 所选行
  • 将数组从一页传递到另一页

    我有一个包含一些值的数组 比如说 arr one one value here arr two second value here arr three third value here 我这个值位于页面 home php 中 在页面末尾 它
  • dart:js 和 js 包有什么区别?

    Dart 文档中的所有地方都建议使用js用于 JavaScript 互操作性的包 然而 我最近发现dart jsSDK 中存在似乎具有相似 但不相同 接口的包 这些包之间有什么区别吗 它们的功能相同吗 推荐哪一款 Js 互操作始于包 js
  • application.yml 中的 @Value 返回错误值

    In my application yml文件声明 service a b 011600 c 011200 从中选择值 yml via Value注解 Value service a c private String VALUE 我得到的不
  • Python - 像扩展函数一样扩展属性

    Question 如何扩展 python 属性 子类可以通过在重载版本中调用超类的函数来扩展超类的函数 然后对结果进行操作 下面是我所说的 扩展函数 的一个例子 Extending a function a tongue in cheek
  • 将毫秒转换为天、小时、分钟和秒

    我在 Microsoft SQL Server 2008R2 中有一个 bigint 字段 里面充满了刻度 单个刻度代表一百纳秒或百万分之一秒 一毫秒有 10 000 个刻度 http msdn microsoft com en us li
  • WCF 发现返回硬编码 URL

    总体设计如下 有某些应用程序作为 Windows 服务安装 网络上可能有几个这样的 它们每个都向网络公开一些接口 将其视为 远程控制 或 配置 诸如此类的东西 然后还有另一个应用程序充当该接口的客户端 使用相同的类比 远程控制器 或 配置工
  • makefile:4: *** 缺少分隔符。停止

    这是我的生成文件 all ll ll ll c gcc c Wall Werror 02 c c ll c o ll lt clean rm fr ll 当我尝试make clean or make make 我收到此错误 makefile
  • 处理临时文件流

    假设我想定义一个 TempFileStream 类 它使用 Path GetTempFileName 方法创建临时文件 当不再需要 TempFileStream 的对象时 必须删除临时文件 例如关闭或处置 class TempFileStr