私は簡単なFTPアップローダを持っています(自分自身のコードではなく、まだ学習しています) バイナリリーダーではないため、exeファイルが破損しています。しかし、混乱しているのは私がバイナリを使用するように指示していることです。FTP FtpWebRequestアップローダはexeファイルを破損します
これは私のコードです:
private void UploadFileToFTP(string source)
{
String sourcefilepath = textBox5.Text;
String ftpurl = textBox3.Text; // e.g. ftp://serverip/foldername/foldername
String ftpusername = textBox1.Text; // e.g. username
String ftppassword = textBox2.Text; // e.g. password
try
{
string filename = Path.GetFileName(source);
string ftpfullpath = ftpurl + "/" + new FileInfo(filename).Name;
FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(ftpfullpath);
ftp.Credentials = new NetworkCredential(ftpusername, ftppassword);
ftp.KeepAlive = true;
ftp.UseBinary = true;
ftp.Method = WebRequestMethods.Ftp.UploadFile;
FileStream fs = File.OpenRead(source);
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
fs.Close();
Stream ftpstream = ftp.GetRequestStream();
ftpstream.Write(buffer, 0, buffer.Length);
ftpstream.Close();
}
catch (Exception ex)
{
throw ex;
}
}
それはうまく動作していますが、exeファイルが壊れているという意味ですか?ファイルが壊れているとどうすれば正常に動作しますか? –
アップロードの実際の機能はほとんどのファイルタイプで機能するためです。 .exesとは別に –
エンコードの問題のような音です。おそらく、OpenRead()はエンコーディングにファンキーな何かをします。下の私の例を試してください。私はEXEでそれをテストしたところ、正常に動作しました。 – Cory