protected static bool Send(string fileName) { AsyncSocketUserToken[] asyncSocketUserToken = new AsyncSocketUserToken[1]; m_asyncSocketSvr.AsyncSocketUserTokenList.CopyList(ref asyncSocketUserToken); //FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.ReadWrite); try { try { DownloadSocketProtocol download = new DownloadSocketProtocol(m_asyncSocketSvr, asyncSocketUserToken[0]); return(true); } catch (Exception E) { Console.WriteLine("Upload File Error: " + E.Message); return(false); } } finally { //fileStream.Close(); } }
//检测文件是否正在使用中,如果正在使用中则检测是否被上传协议占用,如果占用则关闭,真表示正在使用中,并没有关闭 public bool CheckFileInUse(string fileName) { if (BasicFunc.IsFileInUse(fileName)) { bool result = true; lock (m_asyncSocketServer.DownloadSocketProtocolMgr) { DownloadSocketProtocol downloadSocketProtocol = null; for (int i = 0; i < m_asyncSocketServer.DownloadSocketProtocolMgr.Count(); i++) { downloadSocketProtocol = m_asyncSocketServer.DownloadSocketProtocolMgr.ElementAt(i); if (fileName.Equals(downloadSocketProtocol.FileName, StringComparison.CurrentCultureIgnoreCase)) { lock (downloadSocketProtocol.AsyncSocketUserToken) //AsyncSocketUserToken有多个线程访问 { m_asyncSocketServer.CloseClientSocket(downloadSocketProtocol.AsyncSocketUserToken); } result = false; } } } return(result); } else { return(false); } }
public void Remove(DownloadSocketProtocol value) { m_list.Remove(value); }
public void Add(DownloadSocketProtocol value) { m_list.Add(value); }