当前位置: 首页 > 编程语言 > C#

FTP文件传输C#分享

时间:2023-04-10 14:25:45 C#

FTP文件传输C#我需要将FTP上的文件从一台服务器传输到另一台服务器。我使用了以下代码。在许多文件中,这只会部分传输单个文件。对于前者,我有一个56KB的源文件。运行以下代码后,源文件减小为0kb,并且0KB文件传输到目的地,而不是56KB文件大小。我构建了将所有文件从源传输到目标的代码。但是,如上所述,传输单个0KB文件后,它没有任何进一步的进展。请帮我。staticvoidMain(string[]args){stringDISCH_DEST=System.Configuration.ConfigurationManager.AppSettings["DISCH_DEST"];//包含源服务器字符串中的源文件夹FTP_DISCH=System.Configuration.ConfigurationManager.AppSettings["FTP_DISCH"];//FTP路径(ftp://***********/)stringUSERNAME=System.Configuration.ConfigurationManager.AppSettings["USERNAME"];字符串密码=System.Configuration.ConfigurationManager.AppSettings["密码"];DirectoryInfoDISCH_Directory=newDirectoryInfo(DISCH_DEST);FileInfo[]DISCH_Files=DISCH_Directory.GetFiles("*.*");foreach(varfinDISCH_Files)//从大容量文件夹中获取文件(IN){stringFN=Path.GetFileName(f.FullName);intbufferSize=1024;FtpWebRequestREQ=(FtpWebRequest)WebRequest.Create(newUri(String.Format("{0}/{1}",FTP_DISCH,FN)));REQ.Credentials=newNetworkCredential(USERNAME,PASSWORD);REQ.Method=WebRequestMethods.Ftp.UploadFile;流FTP_Stream=REQ.GetRequestStream();FileStreamLOCAL_FileStream=newFileStream(f.FullName,FileMode.Create);byte[]bytebuffer=newbyte[bufferSize];intbytesSent=FTP_Stream.Read(bytebuffer,0,bufferSize);尝试{while(bytesSent!=0){LOCAL_FileStream.Write(bytebuffer,0,bytesSent);bytesSent=FTP_Stream.Read(bytebuffer,0,bytesSent);}}catch(Exceptionex){Console.WriteLine(ex.ToString());}LOCAL_FileStream。关闭();FTP_Stream.Close();请求=空;在许多文件中,这仅部分传输单个文件对于前者,我有一个56KB的源文件。运行以下代码后,源文件减小为0kb,并且0KB文件传输到目的地,而不是56KB文件大小。我构建了将所有文件从源传输到目标的代码。但是,如上所述,传输单个0KB文件后,它没有任何进一步的进展。请帮我。现在我不明白为什么你的代码发送任何文件。您的代码:StreamFTP_Stream=REQ.GetRequestStream();FileStreamLOCAL_FileStream=newFileStream(f.FullName,FileMode.Create);byte[]bytebuffer=newbyte[bufferSize];intbytesSent=FTP_Stream.Read(bytebuffer,0,bufferSize);您正在创建一个新的流,然后从ftp服务器读取它...如果您发送的文件不是FileMode.Create,因为它创建了一个新文件,而是FileMode.Open。你肯定会读取LOCAL_FileStream,写入FTP_STream....以上就是C#学习教程:FTP文件传输C#分享的全部内容。如果对大家有用,需要进一步了解C#学习教程,还望大家多多关注~本文整理自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: