internal void SetPeticionDeDescargaRecibida(DescargaChangedEventArgs e) { if (TextBoxInfoEstadoDescarga.CheckAccess()) { try { DirectoryInfo directorio = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\MisArchivosCompartidos_P2P"); System.IO.FileInfo[] ficheros = directorio.GetFiles(e.Packet.nombreArchivo); System.IO.Stream stream = ficheros[0].OpenRead(); if (stream != null) { e.Packet.stream = stream; e.Packet.comando = "_DESCARGA_"; if (EnviandoDescarga != null) { EnviandoDescarga(this, new DescargaChangedEventArgs(e.Packet)); } } } catch (Exception) { } } else { TextBoxInfoEstadoDescarga.Dispatcher.Invoke(DispatcherPriority.Normal, new _SetPeticionDeDescargaRecibidaHandler(SetPeticionDeDescargaRecibida), e); } }
internal void SetDescarga(DescargaChangedEventArgs e) { if (TextBoxInfoEstadoDescarga.CheckAccess()) { Stream stream = null; DirectoryInfo directorio = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\MisArchivosCompartidos_P2P"); string path = null; try { if (directorio.Exists) { path = directorio.ToString() + @"\" + e.Packet.nombreArchivo; int cont = 0; while (File.Exists(path)) { cont++; path = directorio.ToString() + @"\" + "copia (" + cont + ") - " + e.Packet.nombreArchivo; } } else { string directorioNuevo = System.IO.Path.Combine(directorio.ToString().Replace(@"\MisArchivosCompartidos_P2P", ""), "MisArchivosCompartidos_P2P"); System.IO.Directory.CreateDirectory(directorioNuevo); path = directorioNuevo + @"\" + e.Packet.nombreArchivo; int cont = 0; while (File.Exists(e.Packet.nombreArchivo)) { cont++; path = directorioNuevo + @"\" + "copia (" + cont + ") - " + e.Packet.nombreArchivo; } } stream = new FileStream(path, FileMode.Create, FileAccess.Write); AyudanteStream.CopiarStream(e.Packet.stream, stream); ActualizarTextboxInfoEstadoDescarga(String.Format("Archivo '{0}' guardado en MisArchivosCompartidos_P2P", e.Packet.nombreArchivo)); ActualizarTextboxInfoEstadoDescarga("Descarga completada con éxito.\n"); } catch (Exception) { } finally { if (stream != null) { stream.Close(); } } } else { TextBoxInfoEstadoDescarga.Dispatcher.Invoke(DispatcherPriority.Normal, new _SetDescargaRecibidaHandler(SetDescarga), e); } }
internal void ActualizarTextboxInfoEstadoDescarga(string mensaje) { if (TextBoxInfoEstadoDescarga.CheckAccess()) { TextBoxInfoEstadoDescarga.Text += mensaje + "\n"; TextBoxInfoEstadoDescarga.ScrollToEnd(); } else { TextBoxInfoEstadoDescarga.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, new _ActualizarTextboxInfoEstadoDescargaHandler(ActualizarTextboxInfoEstadoDescarga), mensaje); } }
internal void SetMensajeDeBusquedaRecibido(DescargaChangedEventArgs e) { if (TextBoxInfoEstadoDescarga.CheckAccess()) { try { DirectoryInfo directorio = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\MisArchivosCompartidos_P2P"); string path = null; if (directorio.Exists) { path = directorio.ToString(); } else { string directorioNuevo = System.IO.Path.Combine(directorio.ToString().Replace(@"\MisArchivosCompartidos_P2P", ""), "MisArchivosCompartidos_P2P"); System.IO.Directory.CreateDirectory(directorioNuevo); path = directorioNuevo; } DirectoryInfo directorioBusqueda = new DirectoryInfo(path); System.IO.FileInfo[] ficheros = directorioBusqueda.GetFiles("*" + e.Packet.nombreArchivo + "*.*"); foreach (System.IO.FileInfo f in ficheros) { e.Packet.comando = "_RESPUESTA_BUSQUEDA_"; e.Packet.nombreArchivo = f.Name; e.Packet.tamanio = f.Length; if (EnviandoBusqueda != null) { EnviandoBusqueda(this, new DescargaChangedEventArgs(e.Packet)); } } } catch (Exception) { } } else { TextBoxInfoEstadoDescarga.Dispatcher.Invoke(DispatcherPriority.Normal, new _SetMensajeDeBusquedaRecibidoHandler(SetMensajeDeBusquedaRecibido), e); } }
internal void SetRespuestaABusqueda(DescargaChangedEventArgs e) { if (TextBoxInfoEstadoDescarga.CheckAccess()) { try { double tamFich = e.Packet.tamanio; string strTam = " Bytes"; if (tamFich >= 1024) { tamFich = ConvertirBytesAKiloMegaOGigaBytes((long)tamFich); strTam = " KB"; } if (tamFich >= 1024) { tamFich = ConvertirBytesAKiloMegaOGigaBytes((long)tamFich); strTam = " MB"; } if (tamFich >= 1024) { tamFich = ConvertirBytesAKiloMegaOGigaBytes((long)tamFich); strTam = " GB"; } strTam = tamFich.ToString("0.00") + strTam; ActualizarListBoxBusquedas(String.Format(e.Packet.nombreArchivo + strTam.PadLeft(15, '~') + e.Packet.nombreNodoEmisor.PadLeft(15, '~'))); } catch (Exception) { } } else { TextBoxInfoEstadoDescarga.Dispatcher.Invoke(DispatcherPriority.Normal, new _SetRespuestaAlMensajeDeBusquedaRecibidoHandler(SetRespuestaABusqueda), e); } }