0

我有以下代码使用 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());

不知道为什么,请有人指导我。

4

2 回答 2

2

它可能是一个typo,但你是initializingm_swSAPCostCentres 你引用它之后。这可能是问题吗?

于 2013-04-09T00:36:45.393 回答
1

我想问题是您尝试写入的文件已经存在并且被另一个应用程序打开。

尝试删除文件:

Properties.Settings.Default.SAPInt + @"\SAPCostCentres" + ".txt"

如果它存在,在尝试再次创建它之前。

在您的代码中,您还应该添加一个 try catch 并确保您使用 using 语句来包装一次性对象或在 catch 或 finally 块中调用 close 方法,以便始终关闭流和其他对象。

于 2013-04-10T00:36:10.753 回答