C# 在后台下载文件并取消
我正试图在后台下载一个文件。我做了一个小调查,发现了这个小班:。 您将在该链接中找到完整的代码 所以我的问题是,在我的表单关闭之前,我无法删除下载的文件。 如何处理这些文件以便删除它们? 我尝试使用C# 在后台下载文件并取消,c#,download,background,C#,Download,Background,我正试图在后台下载一个文件。我做了一个小调查,发现了这个小班:。 您将在该链接中找到完整的代码 所以我的问题是,在我的表单关闭之前,我无法删除下载的文件。 如何处理这些文件以便删除它们? 我尝试使用downloader.Stop()然而,这不是诀窍。 手柄未处理。我还尝试了downloader.IsBusy=false这是相同的,但也不起作用 我很确定我错过了一些简单的东西。抱歉给你添麻烦了 这是尝试删除文件时引发的异常: An unhandled exception of type 'Syst
downloader.Stop()代码>然而,这不是诀窍。
手柄未处理。我还尝试了downloader.IsBusy=false代码>这是相同的,但也不起作用
我很确定我错过了一些简单的东西。抱歉给你添麻烦了
这是尝试删除文件时引发的异常:
An unhandled exception of type 'System.IO.IOException' occurred in mscorlib.dll
Additional information: The process cannot access the file 'C:\Users\path\download.exe' because it is being used by another process.
我正在做的事的小复制品
downloader.LocalDirectory = mp3Path;
downloader.Files.Clear();
downloader.Files.Add(new FileDownloaderApp.FileDownloader.FileInfo(aLinks[Link]));
downloader.Start();
Thread.Sleep(500);
downloader.DeleteCompletedFilesAfterCancel = true;
downloader.Stop();
downloader.IsBusy = false;
Thread.Sleep(500);
File.Delete(mp3Path + "\\" + downloader.CurrentFile.Name);
为什么使用Thread.Sleep(500),您估计了下载的时间?也许当你停下来的时候,下载还没有完成
我看到了链接,有一个事件:已完成,检查事件下载程序。已完成
downloader.Completed += new EventHandler(downloader_Completed);
您应该尝试处理此事件,检查文件何时下载,并根据需要执行任何操作,并且下载程序具有DeleteCompletedFilesAfterCancel属性,这将使下载程序在完成时自动删除文件
downloader.LocalDirectory = mp3Path;
downloader.DeleteCompletedFilesAfterCancel = true;
downloader.Completed += new EventHandler(downloader_Completed);
downloader.Files.Clear();
downloader.Files.Add(new FileDownloaderApp.FileDownloader.FileInfo(aLinks[Link]));
downloader.Start();
private void downloader_Completed(object sender, EventArgs e)
{
//Do something if you want
}
是的,但是如果下载被破坏了呢。几分钟后就回来了。这就是为什么我会在几秒钟后检查下载的大小,如果它非常小,我会停止下载并尝试删除文件。这就是我的问题所在。我无法停止下载并删除文件。