问题描述
我有一个Windows窗体,该窗体允许用户选择文件名并下载。下载完成后,将触发下载完成事件,该事件将下载的文件解压缩并进一步处理。
downloadComplete事件似乎触发了两次,这导致两次解压缩操作发生。该事件会被触发两次吗?
下面是触发下载并处理下载完成事件的功能。
$ curl https://my-source-of-json.com/list | jq -r '.records' | jq length
2
$
在处理下载的类中,download方法的实现如下:
Private Async Sub Btn_download_Click(sender As Object,e As EventArgs) Handles Btn_download.Click
Dim fileNameRows As DataGridViewSelectedRowCollection = datagridview_cloudContent.SelectedRows
Dim fileName As String
Dim fileType As String = AWSGlobals.CONTENT
For Each fileNameRow As DataGridViewRow In fileNameRows
fileName = fileNameRow.Cells(0).Value.ToString() & ".zip"
Try
Await DownloadAsyncFile(fileName,fileType)
Catch ex As Exception
CSMessageBox.ShowError("Content Import Failed : ",ex)
End Try
Next
End Sub
Private Function UnzipAndImport(filename As String) Handles s3obj.DownloadDone
If Not System.IO.Directory.Exists(AWSGlobals.ContentPath & Path.GetFileNameWithoutExtension(filename)) Then
Dim zipFilePath As String = diskPath & filename
Dim zipFileArchive As ZipArchive = ZipFile.OpenRead(zipFilePath)
Dim FullPathOfContent As String = diskPath
ExtractToDirectoryOverWrite(zipFileArchive,FullPathOfContent,True)
ImportExport.BatchImportContent(New ArrayList(New String() {Extractedpath}),objmanager)
End If
End Function
有人可以告诉我此实现是否导致仅下载一个文件时触发两次下载完成事件?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)