これは非常に具体的です。私は、関数がDLL内にあり、コードは以下の通りです私の私のVB.NetプログラムでC#の機能を使用して助ける必要があります。VB.NetのC#アップロード機能を使用
public void UploadData(string FTPUri, string FilePath, string FileName,
string UserName, string Password)
{
StatusUp = new Int64[2];
reqFTP = (FtpWebRequest)FtpWebRequest.Create(FTPUri + FileName);
reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
reqFTP.UseBinary = true;
reqFTP.Credentials = new NetworkCredential(UserName, Password);
FileInfo fileInf = new FileInfo(FilePath);
FileStream fs = fileInf.OpenRead();
// modifyied code
int bytesSize = 0;
byte[] UpBuffer = new byte[2048];
ftpStream = reqFTP.GetRequestStream();
bytesSize = fs.Read(UpBuffer, 0, UpBuffer.Length);
while ((bytesSize = fs.Read(UpBuffer, 0, UpBuffer.Length)) > 0)
{
StatusUp[0] = StatusUp[0] + UpBuffer.Length;
StatusUp[1] = fileInf.Length;// +startPointInt;
ftpStream.Write(UpBuffer, 0, bytesSize);
}
fs.Close();
ftpStream.Close();
}
私vb.netのプログラムでは、私はこのようにそれを呼び出しています:
Dim FtpUpload As FTPUtility.ftpUtility = New FTPUtility.ftpUtility
FtpUpload.UploadData("ftp://ftp.xxx.xx", "C:\winzip.log", "/winzip.log", "uploader", "xxxx")
完了したら2バイト短いという点を除いて問題なく動作します。私はC#コードが間違っているかどうかを知るには十分なC#を知りませんが(私はそれを書いておらず、会社を辞めた人もいますが)、どこかにファイルや何かが閉じていないようです。
アイデア?
どうやらあなたはC++から離れているとはっきりと分かりません; - ] – ildjarn
私には正しいと思われます。それは常に2バイト短いですか?それはすべてのファイルで起こりますか? –
ハハ! :-)はい、今私は信じられないほど馬鹿に見えます。あなたは正しいです、それはC#です - 私は同じ男のC++コードを一日中見ていたので段階的に終了しました。とにかく、ありがとう! – Chiwda