Я попытался загрузить и загрузить ftp, но он все время идет на ошибку Nullreference
. Может быть, opennetcf.net.ftp
не лучший способ решить проблему? Может ли кто-нибудь помочь мне решить проблему?ftp upload/download in C# для windows mobile 6.5 с opencf.net.ftp
namespace ftp_load
{
public partial class Form1 : Form
{
public class FTPManagerClass
{
private static string password = "";
private static string username = "";
private static string host = "";
private FtpWebRequest ftpRequest = null;
private FtpWebResponse ftpResponse = null;
private Stream ftpStream = null;
// private int bufferSize = 2048;
public FTPManagerClass(string user, string pass, string hostname)
{
username = user;
password = pass;
host = hostname;
}
public void DownloadFile(string remoteFile, string localFIle)
{
try
{
ftpRequest = (FtpWebRequest)FtpWebRequest.Create(host + "/" + remoteFile);
ftpRequest.Credentials = new NetworkCredential(username, password);
//ftpRequest.UseBinary = true;
ftpRequest.Method = WebRequestMethods.Ftp.DownloadFile;
ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
ftpStream = ftpResponse.GetResponseStream();
FileStream fs = new FileStream(localFIle, FileMode.OpenOrCreate);
fs.Close();
ftpStream.Close();
ftpResponse.Close();
ftpRequest = null;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
public void UploadFile(string localFile, string remoteFile)
{
try
{
ftpRequest = (FtpWebRequest)FtpWebRequest.Create(host + "/" + remoteFile);
ftpRequest.Credentials = new NetworkCredential(username, password);
// ftpRequest.UseBinary = true;
// ftpRequest.UsePassive = true;
ftpRequest.KeepAlive = false;
ftpRequest.Method = WebRequestMethods.Ftp.UploadFile;
ftpStream = ftpRequest.GetRequestStream();
FileStream lfs = new FileStream(localFile, FileMode.Open);
byte[] bytebuffer = new byte[lfs.Length];
int bytesSend = lfs.Read(bytebuffer, 0, (int)lfs.Length);
try
{
while (bytesSend != -1)
{
ftpStream.Write(bytebuffer, 0, bytesSend);
bytesSend = lfs.Read(bytebuffer, 0, (int)lfs.Length);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
ftpResponse.Close();
ftpStream.Close();
lfs.Close();
ftpRequest = null;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
FTPManagerClass client;
private static string password = "";
private static string username = "";
private static string host = "";
private FtpWebRequest ftpRequest = null;
private FtpWebResponse ftpResponse = null;
private Stream ftpStream = null;
public Form1()
{
InitializeComponent();
connMgr = new ConnMgr();
connMgr.StatusChanged += new ConnMgr.StatusChangedEventHandler(StatusChanged_Handler);
}
private ConnMgr connMgr;
private void button1_Click(object sender, EventArgs e)
{
if (txt_br_down.Text != "")
{
client.DownloadFile(@"/GP_FTP/ans.txt", @"/download");
client = new FTPManagerClass("usr", "pwd", "ftp://ftp.tzf.com");
}
else
{
MessageBox.Show("Ures mezo");
}
}
private void txt_br_dw_1_TextChanged(object sender, EventArgs e)
{
}
Соединение GPRS строит, но после подключения FTP имеет некоторые проблемы:
private void btn_login_Click(object sender, EventArgs e)
{
}
private void btn_login_Click_1(object sender, EventArgs e)
{
if (!connMgr.Connected)
{
connMgr.Connect("pannon", ConnMgr.ConnectionMode.Synchronous, " ", " ", "net");
txtLog.Text += "Sync connection successful\r\n";
}
else
{
MessageBox.Show("No connection!");
}
}
private void txtLog_TextChanged(object sender, EventArgs e)
{
}
private void StatusChanged_Handler(object sender, ConnMgr.StatusChangedEventArgs e)
{
connMgr.Timeout = 3000;
txtLog.Text += e.desc + "\r\n"; // Show current state's description
if (!connMgr.Waiting)
if (connMgr.Connected)
txtLog.Text += "Confirmed - We are now connected\r\n";
else
{
txtLog.Text += "Confirmed - Connection instance has been released\r\n";
// btnCancel.Enabled = false;
// btnConnect.Enabled = true;
}
if (e.connstatus == ConnMgr.ConnectionStatus.ExclusiveConflict)
MessageBox.Show("If using Activesync, check connection settings for 'Allow wireless connection ...' or remove from homebase.");
}
private void Form1_Load(object sender, EventArgs e)
{
}
Нет выглядит аутентификация ok.There это не проблема!
Я сделал это:
try
{
client = new FTPManagerClass("usr", "pwd", "ftp://ftp.tzf.com");
}
catch (Exception ex)
{
MessageBox.Show("Login"+ ex);
}
Это нормально!
Но после этого: ctacke
try
{
MessageBox.Show("before download");
client.DownloadFile("/GP_FTP/ans.txt", "/download");
MessageBox.Show("after download");
}
catch (Exception ex1)
{
MessageBox.Show("file"+ ex1);
}
Проблема теперь:. В client.DownloadFile
System.nullreferenceException
Теперь я понятия не имею :( это может быть какой-то жаль, что ...
Почему это нуль? client.DownloadFile(@"/GP_FTP/ans.txt", @"/download");
я попытался client.DownloadFile("/GP_FTP/ans.txt", "/download");
и client.DownloadFile("ans.txt", "/download");
и то же. Почему?
Спасибо Жилю за редактирование! – user5494221
Где во всем этом коде происходит исключение NullReferenceException? – ctacke
'client.DownloadFile (@"/GP_FTP/ans.txt ", @"/download ");' – user5494221