我使用aria2下载了一堆文件,我现在的问题是我必须在VBA应用程序中对文件进行后处理。到目前为止,后处理逻辑已经在VBA中编写,因此我正在寻找一种解决方案,不仅从列表(由VBA导出)而不是csv文件中读取URL,以使用唯一标识符来存储它们。否则,我无法在名称冲突的情况下找到下载的文件。除此之外,内容应存储在sqlite数据库中以提高处理速度。我正在谈论数千个总大小为多GB的文件,因此我的VBA应用程序的速度受到磁盘的影响。
我的问题有解决方案吗?
目前,我使用golang包装器脚本来解决问题,该脚本读取csv文件并使用--out参数生成一堆aria2实例来控制输出文件命名。
示例代码:
导出csv
path = ThisWorkbook.path & "\" & dataFile
If FileHandler.FileExists(path) Then
FileHandler.DeleteFile (path)
End If
FileHandler.CreateFile (path)
fileHandle = FreeFile
Open path For Append As #fileHandle
For WksIndex = 3 To 37
If SettingGet("Enable", WksIndex) Then ' check if worksheets should be processed
For Row = 1 To Worksheets(WksIndex).Cells(9999, 1).End(xlUp).Row
If Worksheets(WksIndex).Cells(Row, 1).value <> "" And Worksheets(WksIndex).Cells(Row, 3).value <> "" Then
Call FileHandler.AppendToFile( _
path, _
Worksheets(WksIndex).Cells(Row, 1).value & ";" & _
Worksheets(WksIndex).Cells(Row, 3).value, _
fileHandle _
) ' append ID;URL to file
End If
Next Row
End If
Next WksIndex
Close #fileHandle