繁体   English   中英

未使用(READTOEND)将对象引用设置为对象的实例

[英]Object reference not set to an instance of an object using ( READTOEND)

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

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

可能是typo但是您在引用m_swSAPCostCentres后将其initializing 可能是问题所在吗?

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

尝试删除文件:

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

(如果存在),然后尝试再次创建它。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM