1
我需要从一个服务器上的FTP文件传输到其他。我已经使用了下面的代码。FTP文件传输C#
了许多文件,这部分只传输一个文件。例如。我有一个56KB的源文件。运行下面的代码之后,源文件被减小到0KB和0KB文件被传输到目标,而不是56 KB文件大小。
我编译后的代码将所有文件从源传输到目的地。但是,如上所述,在传输单个0KB文件后,它不会进一步发展。
请帮帮我。
static void Main(string[] args)
{
string DISCH_DEST = System.Configuration.ConfigurationManager.AppSettings["DISCH_DEST"]; //Contains the source folder in source server
string FTP_DISCH = System.Configuration.ConfigurationManager.AppSettings["FTP_DISCH"]; // FTP path (ftp://***********/)
string USERNAME = System.Configuration.ConfigurationManager.AppSettings["USERNAME"];
string PASSWORD = System.Configuration.ConfigurationManager.AppSettings["PASSWORD"];
DirectoryInfo DISCH_Directory = new DirectoryInfo(DISCH_DEST);
FileInfo[] DISCH_Files = DISCH_Directory.GetFiles("*.*");
foreach (var f in DISCH_Files) //FETCHING FILES FROM THE BULK FOLDER (IN)
{
string FN = Path.GetFileName(f.FullName);
int bufferSize = 1024;
FtpWebRequest REQ = (FtpWebRequest)WebRequest.Create(new Uri(String.Format("{0}/{1}",FTP_DISCH,FN)));
REQ.Credentials = new NetworkCredential(USERNAME, PASSWORD);
REQ.Method = WebRequestMethods.Ftp.UploadFile;
Stream FTP_Stream = REQ.GetRequestStream();
FileStream LOCAL_FileStream = new FileStream(f.FullName, FileMode.Create);
byte[] bytebuffer = new byte[bufferSize];
int bytesSent = FTP_Stream.Read(bytebuffer, 0, bufferSize);
try
{
while (bytesSent != 0)
{
LOCAL_FileStream.Write(bytebuffer, 0, bytesSent);
bytesSent = FTP_Stream.Read(bytebuffer, 0, bytesSent);
}
}
catch (Exception ex) { Console.WriteLine(ex.ToString()); }
LOCAL_FileStream.Close();
FTP_Stream.Close();
REQ = null;
}
}
在许多文件中,这只是部分传输单个文件。例如。我有一个56KB的源文件。在运行下面的代码后,源文件将减少到0kb,并将0KB文件传输到目标文件,而不是56 KB的文件大小。
我构建的代码将所有文件从源传输到目标。但是,如上所述,在传输单个0KB文件后,它不会进一步发展。
请帮帮我。
的可能的复制[上传和FTP服务器在C#中下载的二进制文件到//NET](https://开头计算器。 COM /问题/ 44606028 /上传和下载,一个二进制文件到从-FTP服务器功能于C-NET) –