gpt4 book ai didi

c# - 如何删除作为 HttpResponseMessage 的 StreamContent 发送的文件

转载 作者:可可西里 更新时间:2023-11-01 02:58:55 26 4
gpt4 key购买 nike

在 ASP.NET webapi 中,我向客户端发送了一个临时文件。我打开一个流来读取文件并在 HttpResponseMessage 上使用 StreamContent。客户端收到文件后,我想删除这个临时文件(没有来自客户端的任何其他调用)客户端收到文件后,将调用 HttpResponseMessage 的 Dispose 方法,并且流也会被释放。现在,此时我也想删除临时文件。

一种方法是从 HttpResponseMessage 类派生一个类,覆盖 Dispose 方法,删除此文件并调用基类的 dispose 方法。 (我还没有尝试过,所以不确定这是否有效)

我想知道是否有更好的方法来实现这一点。

最佳答案

实际上 your comment帮助解决了这个问题......我在这里写道:

Delete temporary file sent through a StreamContent in ASP.NET Web API HttpResponseMessage

这是对我有用的。请注意,Dispose 中的调用顺序与您的评论不同:

public class FileHttpResponseMessage : HttpResponseMessage
{
private string filePath;

public FileHttpResponseMessage(string filePath)
{
this.filePath = filePath;
}

protected override void Dispose(bool disposing)
{
base.Dispose(disposing);

Content.Dispose();

File.Delete(filePath);
}
}

关于c# - 如何删除作为 HttpResponseMessage 的 StreamContent 发送的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15288749/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com