Это очень специфично.Мне нужна помощь с использованием функции C # в моей программе VB.Net. Эта функция находится в DLL, код которой приведен ниже:
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 # неправильным (я не написал его и тот, кто ушел из компании), но где-то кажется, что он не закрывает файл или что-то в этом роде.
Есть идеи?