public static TransferQueue CreateDownloadQueue(TransferClient client, int id, string saveName, long length) { try { var queue = new TransferQueue(); queue.Filename = Path.GetFileName(saveName); if (saveName.Contains(@"\")) { String[] pastas = saveName.Split('\\'); for (int i = 0; i < pastas.Length - 1; i++) { String pastaAux = pastas[i]; if (i > 0) { pastaAux = ""; for (int z = 0; z <= i; z++) { if (z > 0) { pastaAux += @"\"; } pastaAux += pastas[z]; } } if (!Directory.Exists(pastaAux)) { Directory.CreateDirectory(pastaAux); } } } queue.Client = client; queue.Type = QueueType.Download; queue.FS = new FileStream(saveName, FileMode.Create); queue.FS.SetLength(length); queue.Length = length; queue.ID = id; queue.MS = new MemoryStream(); queue.MS.SetLength(length); return(queue); } catch { return(null); } }
public static TransferQueue CreateUploadQueue(TransferClient client, string fileName, string pasta = null) { try { var queue = new TransferQueue(); String nomeFinal = (pasta == null) ? "" : pasta + @"\"; nomeFinal += Path.GetFileName(fileName); queue.Filename = nomeFinal; queue.Client = client; queue.Type = QueueType.Upload; queue.FS = new FileStream(fileName, FileMode.Open, FileAccess.Read); queue.Thread = new Thread(new ParameterizedThreadStart(transferProc)); queue.Thread.IsBackground = true; queue.ID = ManterRandom.proximo(); queue.Length = queue.FS.Length; return(queue); } catch (Exception e) { throw e; } }