c# – FTP操作后清理资源的正确方法是什么?
一旦我使用FTP上传文件,我该怎么办?我通常只关闭两个流,即:
sourceStream.Close(); requestStream.Close(); 如果他们保持开放会有什么影响?其他用户是否可以使用相同的凭据登录?我能再次登录吗? 以下是更好理解的完整代码: FtpWebRequest request = (FtpWebRequest)WebRequest.Create( "bbbbb" + "bbbbbb" + "bbb/" + hj + "/" + hjj + ".txt"); request.Credentials = new NetworkCredential("bbbbb","bbbbbb"); request.Method = WebRequestMethods.Ftp.UploadFile; request.UsePassive = true; StreamReader sourceStream = new StreamReader(j + @"oo.txt"); byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd()); sourceStream.Close(); request.ContentLength = fileContents.Length; Stream requestStream = request.GetRequestStream(); requestStream.Write(fileContents,fileContents.Length); sourceStream.Close(); requestStream.Close(); 另外,我有时只有request.open方法 – 它没有分配任何close()方法,然后我在FTP操作的最后使用request.Abort().这有任何意义吗? 解决方法
好吧,MSDN documentation声明:
这表示如果不关闭请求流,可能会发生不良事件.如果您不关闭源流,那么您很可能最终会锁定文件,拒绝访问以供将来的请求和/或其他用户使用 – 尽管它取决于底层操作系统和文件的共享模式. 至于关闭请求:我没有使用过WebRequest&但是,根据上面提到的MSDN文档,似乎你应该遵循的模式 >创建请求 除非你另有说法,否则这样做可能是个好主意. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |