C# 流中的数据未写入文件
我有一个小的导入例程,它从ftp源获取数据,解析它们,并使用lint-to-sql将数据写入数据库。这一切都是完美的工作,除了一部分,正在下载的文件不会保存在本地 该程序遵循以下步骤:C# 流中的数据未写入文件,c#,streamwriter,C#,Streamwriter,我有一个小的导入例程,它从ftp源获取数据,解析它们,并使用lint-to-sql将数据写入数据库。这一切都是完美的工作,除了一部分,正在下载的文件不会保存在本地 该程序遵循以下步骤: 列出源上的所有文件 迭代所有文件 如果文件存在,请跳过 如果文件还不存在,请下载并解析 解析内容 保存到数据库 保存到文件(不工作) 文件在适当的文件夹中创建,但大小为0字节。 我哪里出错了 代码: FtpWebResponse responseFileDownload=(FtpWebResponse)reque
FtpWebResponse responseFileDownload=(FtpWebResponse)requestFileDownload.GetResponse();
尝试
{
使用(Stream responseStream=responseFileDownload.GetResponseStream())
{
使用(FileStream writeStream=newfilestream(localPath+“\\downloads\\”+FtpListing[i],FileMode.Create))
{
//未下载的数据在本地已作为平面文件存在
//将数据从responsestream写入数据库
使用(变量读取器=新的流读取器(responseStream))
{
//忽略第一行
字符串headline=reader.ReadLine();
#区域Linq到Sql逻辑|解析
列表傻瓜=新列表();
//阅读csv的其余部分
使用(var context=new DataContext())
{
//逻辑删去
//context.SubmitChanges();
}
}
#端区
响应团队位置=0;
responseStream.CopyTo(writeStream);
}
}
}
提前谢谢可能是同样的问题:
您正在尝试读取两次响应流。是否已逐步阅读了代码?处理StreamReader还将关闭底层流。i、 e.在到达CopyTo语句之前,responsestream已关闭。
FtpWebResponse responseFileDownload = (FtpWebResponse)requestFileDownload.GetResponse();
try
{
using (Stream responseStream = responseFileDownload.GetResponseStream())
{
using (FileStream writeStream = new FileStream(localPath + "\\downloads\\" + FtpListing[i], FileMode.Create))
{
//data which is not downloaded, already exists as a flatfile locally
//write data from responsestream to db
using (var reader = new StreamReader(responseStream))
{
//ignore first line
string headline = reader.ReadLine();
#region Linq-To-Sql logic | Parsing
List<Messwert> fooList = new List<Messwert>();
//read rest of csv
using (var context = new DataContext())
{
//Logic edited out
//context.SubmitChanges();
}
}
#endregion
responseStream.Position = 0;
responseStream.CopyTo(writeStream);
}
}
}