我有以下代码使用ftp下载txt文件并写回另一个文件。
ftp = (FtpWebRequest)WebRequest.Create("ftp://" + ftpHost + ftpDIR + "/SAPValidObjects.txt");
ftp.Method = WebRequestMethods.Ftp.DownloadFile;
ftp.UseBinary = false;
ftp.Credentials = new NetworkCredential(ftpUserID, ftpPWD);
FtpWebResponse response = (FtpWebResponse)ftp.GetResponse();
Stream sResponse = response.GetResponseStream();
StreamReader srSAPCostObjects = new StreamReader(sResponse);
m_swSAPCostCentres.Write(srSAPCostObjects.ReadToEnd());
m_swSAPCostCentres.Close();
response.Close();
m_swSAPCostCentres = new StreamWriter(Properties.Settings.Default.SAPInt + @"\SAPCostCentres" + ".txt");
由于某种原因,它会在
处抛出异常 m_swSAPCostCentres.Write(srSAPCostObjects.ReadToEnd());
我不确定为什么,有人请指导我。
答案 0 :(得分:2)
可能是
typo
,但你是initializing
m_swSAPCostCentres
在你引用它之后。这可能是问题吗?
答案 1 :(得分:1)
我想问题是您尝试编写的文件已经存在并由另一个应用程序打开。
尝试删除文件:
Properties.Settings.Default.SAPInt + @"\SAPCostCentres" + ".txt"
如果存在,则在尝试再次创建之前。
在你的代码中,你还应该添加一个try catch,并确保使用using语句来包装一次性对象,或者在catch或finally块中调用close方法,以便始终关闭流和其他对象。