在我的网络API上,我想在return语句后删除一个文件夹。
public string Post(HttpRequestMessage request)
{
//Do cool stuff with request
try
{
return "10.0.2.2:8080/myFolder/index.html";
}
finally
{
Thread.Sleep(60000);
Directory.Delete(myFolder, true);
}
}
我期望制作POST
的设备可以获取return语句并加载html
文件。一分钟后,我们删除此文件以释放服务器上的空间。
返回语句实际上是在finally语句之后发送的。
如何在带延迟的return语句之后运行代码,而不延迟返回?
答案 0 :(得分:3)
无论如何也无法做到这一点,因为你会保持资源(例如网络服务器线程)忙着等待。
编写另一个进程(最好是Windows服务,如果你在Windows上)定期检查目录并删除某个年龄的所有文件。
答案 1 :(得分:0)
返回后无法执行代码 在我看来,如果在1m之前创建的文件将其删除
,您可以检查文件DirectoryInfo objDirectoryInfo = new
DirectoryInfo(Server.MapPath("~/files"));
foreach (FileInfo File in objDirectoryInfo.GetFiles) {
if ((File.LastAccessTime < DateTime.Now.AddMinutes(-1))) {
File.Delete();
}
}