2010-04-16 28 views
1

我正在使用FtpWebRequest将数据追加到大型机文件。每个附加的记录长度为50个字符,我一次添加一条记录。使用FtpWebRequest追加到大型机上的文件的问题

在我们的开发环境中,我们没有大型机,所以我的代码被编写并测试了FTP到基于Windows的FTP站点而不是大型机。最初,我使用StreamWriter(使用来自FtpWebRequest的流)编写每条记录,并使用WriteLine(它自动为最终自动添加CR/LF)写入每条记录。当我们在测试环境中(我们正在写一个实际的MVS主机)中第一次运行它时,我们的主机联系人说CR/LF无法被他的程序读取(绿色 - 某种屏幕大型机程序 - 他发给我屏幕截图,这就是我所知道的)。

我改变了我们的代码中使用Write,而不是WriteLine,但现在我的代码成功执行(即没有抛出的异常)写多个记录时,但不管有多少记录追加,他只能“看见”第一个记录 - 根据他的大型机程序,文件中只有一个50个字符的记录。

我猜想要解决这个问题,我需要在流的结尾(而不是CR/LF)写入一些其他行分隔字符,大型机会将其识别为记录分隔符。任何人都知道这是什么,或者我可以如何解决这个问题?

回答

1

我实际上有完全相同的问题,我通过使用LF作为分隔符来修复它。

另外,为了发送文件,我最终编写了一个命令行脚本并将其移植到DOS ftp实用程序中,因为.NET FTP类中内置的函数不能很好地与大型机格式化命令和奇怪的“目录”结构。

+0

LF =“\ n”和CR =“\ r”对不对? – MusiGenesis 2010-04-16 01:20:03

+0

我已经经历了一些痛苦,已经越来越远。我已经遇到了MVS目录结构问题 - 幸运的是,我们的目标最终变成了“ftp://ggg.ddd.com//'FILE.EXT”这样简单的东西(带有额外的正斜杠和单引号)。 – MusiGenesis 2010-04-16 01:22:50

+0

这听起来像添加LF而不是CR/LF可能会修复我们。他们说,记录长度是50个字符。你认为这意味着我应该追加51个字符(50 + LF),还是LF应该是第50个字符? – MusiGenesis 2010-04-16 01:24:12