Necesito descargar programáticamente un archivo grande antes de procesarlo. ¿Cuál es la mejor manera de hacer eso? Como el archivo es grande, quiero un tiempo específico para esperar para poder salir con fuerza.Cómo descargar mediante programación un archivo grande en C#
Sé de WebClient.DownloadFile(). Pero no parece una manera de esperar un tiempo específico para salir con fuerza.
try
{
WebClient client = new WebClient();
Uri uri = new Uri(inputFileUrl);
client.DownloadFile(uri, outputFile);
}
catch (Exception ex)
{
throw;
}
Otra forma es utilizar una utilidad de línea de comandos (wget) para descargar el archivo y disparar usando el comando ProcessStartInfo y el uso de procesos WaitForExit (int ms) a la fuerza de salida.
ProcessStartInfo startInfo = new ProcessStartInfo();
//set startInfo object
try
{
using (Process exeProcess = Process.Start(startInfo))
{
//wait for time specified
exeProcess.WaitForExit(1000 * 60 * 60);//wait till 1m
//check if process has exited
if (!exeProcess.HasExited)
{
//kill process and throw ex
exeProcess.Kill();
throw new ApplicationException("Downloading timed out");
}
}
}
catch (Exception ex)
{
throw;
}
¿Hay una manera mejor? Por favor ayuda. Gracias.
Cuál es la URI ? es ftp? – t0mm13b