ftpsample dot net 2.0
来源:互联网 发布:文怀沙 知乎 编辑:程序博客网 时间:2024/04/28 14:28
- using System;
- using System.IO;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Text;
- using System.Windows.Forms;
- using System.Net;
- namespace FTP24CP
- {
- public partial class Form1 : Form
- {
- string ftpServerIP;
- string ftpUserID;
- string ftpPassword;
- public Form1()
- {
- InitializeComponent();
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- ftpServerIP = "192.168.1.21";
- ftpUserID = "administrator";
- ftpPassword = "xxxxx";
- txtServerIP.Text = ftpServerIP;
- txtUsername.Text = ftpUserID;
- txtPassword.Text = ftpPassword;
- this.Text += ftpServerIP;
- btnFTPSave.Enabled = false;
- }
-
-
-
-
- private void Upload(string filename)
- {
- FileInfo fileInf = new FileInfo(filename);
- string uri = "ftp://" + ftpServerIP + "/" + fileInf.Name;
- FtpWebRequest reqFTP;
-
- reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/" + fileInf.Name));
-
- reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
-
-
- reqFTP.KeepAlive = false;
-
- reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
-
- reqFTP.UseBinary = true;
-
- reqFTP.ContentLength = fileInf.Length;
-
- int buffLength = 2048;
- byte[] buff = new byte[buffLength];
- int contentLen;
-
- FileStream fs = fileInf.OpenRead();
-
- try
- {
-
- Stream strm = reqFTP.GetRequestStream();
-
-
- contentLen = fs.Read(buff, 0, buffLength);
-
- while (contentLen != 0)
- {
-
- strm.Write(buff, 0, contentLen);
- contentLen = fs.Read(buff, 0, buffLength);
- }
-
- strm.Close();
- fs.Close();
- }
- catch(Exception ex)
- {
- MessageBox.Show(ex.Message, "Upload Error");
- }
- }
- public void DeleteFTP(string fileName)
- {
- try
- {
- string uri = "ftp://" + ftpServerIP + "/" + fileName;
- FtpWebRequest reqFTP;
- reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/" + fileName));
- reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
- reqFTP.KeepAlive = false;
- reqFTP.Method = WebRequestMethods.Ftp.DeleteFile;
- string result = String.Empty;
- FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
- long size = response.ContentLength;
- Stream datastream = response.GetResponseStream();
- StreamReader sr = new StreamReader(datastream);
- result = sr.ReadToEnd();
- sr.Close();
- datastream.Close();
- response.Close();
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message, "FTP 2.0 Delete");
- }
- }
- private string[] GetFilesDetailList()
- {
- string[] downloadFiles;
- try
- {
- StringBuilder result = new StringBuilder();
- FtpWebRequest ftp;
- ftp = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/"));
- ftp.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
- ftp.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
- WebResponse response = ftp.GetResponse();
- StreamReader reader = new StreamReader(response.GetResponseStream());
- string line = reader.ReadLine();
- while (line != null)
- {
- result.Append(line);
- result.Append("/n");
- line = reader.ReadLine();
- }
-
- result.Remove(result.ToString().LastIndexOf("/n"), 1);
- reader.Close();
- response.Close();
- return result.ToString().Split('/n');
-
- }
- catch (Exception ex)
- {
- System.Windows.Forms.MessageBox.Show(ex.Message);
- downloadFiles = null;
- return downloadFiles;
- }
- }
- public string[] GetFileList()
- {
- string[] downloadFiles;
- StringBuilder result = new StringBuilder();
- FtpWebRequest reqFTP;
- try
- {
- reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/"));
- reqFTP.UseBinary = true;
- reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
- reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
- WebResponse response = reqFTP.GetResponse();
- StreamReader reader = new StreamReader(response.GetResponseStream());
-
- string line = reader.ReadLine();
- while (line != null)
- {
- result.Append(line);
- result.Append("/n");
- line = reader.ReadLine();
- }
- result.Remove(result.ToString().LastIndexOf('/n'), 1);
- reader.Close();
- response.Close();
-
- return result.ToString().Split('/n');
- }
- catch (Exception ex)
- {
- System.Windows.Forms.MessageBox.Show(ex.Message);
- downloadFiles = null;
- return downloadFiles;
- }
- }
- private void Download(string filePath, string fileName)
- {
- FtpWebRequest reqFTP;
- try
- {
-
-
- FileStream outputStream = new FileStream(filePath + "//" + fileName, FileMode.Create);
- reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/" + fileName));
- reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
- reqFTP.UseBinary = true;
- reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
- FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
- Stream ftpStream = response.GetResponseStream();
- long cl = response.ContentLength;
- int bufferSize = 2048;
- int readCount;
- byte[] buffer = new byte[bufferSize];
- readCount = ftpStream.Read(buffer, 0, bufferSize);
- while (readCount > 0)
- {
- outputStream.Write(buffer, 0, readCount);
- readCount = ftpStream.Read(buffer, 0, bufferSize);
- }
- ftpStream.Close();
- outputStream.Close();
- response.Close();
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message);
- }
- }
- private void btnUpload_Click(object sender, EventArgs e)
- {
- OpenFileDialog opFilDlg = new OpenFileDialog();
- if (opFilDlg.ShowDialog() == DialogResult.OK)
- {
- Upload(opFilDlg.FileName);
- }
- }
- private void btnDownload_Click(object sender, EventArgs e)
- {
- FolderBrowserDialog fldDlg = new FolderBrowserDialog();
- if (txtUpload.Text.Trim().Length > 0)
- {
- if (fldDlg.ShowDialog() == DialogResult.OK)
- {
- Download(fldDlg.SelectedPath, txtUpload.Text.Trim());
- }
- }
- else
- {
- MessageBox.Show("Please enter the File name to download");
- }
- }
- private void btnLstFiles_Click(object sender, EventArgs e)
- {
- string[] filenames = GetFileList();
- lstFiles.Items.Clear();
- foreach (string filename in filenames)
- {
- lstFiles.Items.Add(filename);
- }
- }
- private void btndelete_Click(object sender, EventArgs e)
- {
- OpenFileDialog fldDlg = new OpenFileDialog();
- if (txtUpload.Text.Trim().Length > 0)
- {
- DeleteFTP(txtUpload.Text.Trim());
- }
- else
- {
- MessageBox.Show("Please enter the File name to delete");
- }
- }
- private long GetFileSize(string filename)
- {
- FtpWebRequest reqFTP;
- long fileSize = 0;
- try
- {
- reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/" + filename));
- reqFTP.Method = WebRequestMethods.Ftp.GetFileSize;
- reqFTP.UseBinary = true;
- reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
- FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
- Stream ftpStream = response.GetResponseStream();
- fileSize = response.ContentLength;
-
- ftpStream.Close();
- response.Close();
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message);
- }
- return fileSize;
- }
- private void Rename(string currentFilename, string newFilename)
- {
- FtpWebRequest reqFTP;
- try
- {
- reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/" + currentFilename));
- reqFTP.Method = WebRequestMethods.Ftp.Rename;
- reqFTP.RenameTo = newFilename;
- reqFTP.UseBinary = true;
- reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
- FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
- Stream ftpStream = response.GetResponseStream();
-
- ftpStream.Close();
- response.Close();
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message);
- }
- }
- private void MakeDir(string dirName)
- {
- FtpWebRequest reqFTP;
- try
- {
-
- reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/" + dirName));
- reqFTP.Method = WebRequestMethods.Ftp.MakeDirectory;
- reqFTP.UseBinary = true;
- reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
- FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
- Stream ftpStream = response.GetResponseStream();
- ftpStream.Close();
- response.Close();
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message);
- }
- }
- private void btnFileSize_Click(object sender, EventArgs e)
- {
- long size = GetFileSize(txtUpload.Text.Trim());
- MessageBox.Show(size.ToString()+" bytes");
- }
- private void button1_Click(object sender, EventArgs e)
- {
- Rename(txtCurrentFilename.Text.Trim(), txtNewFilename.Text.Trim());
- }
- private void btnewDir_Click(object sender, EventArgs e)
- {
- MakeDir(txtNewDir.Text.Trim());
- }
- private void txtPassword_TextChanged(object sender, EventArgs e)
- {
- btnFTPSave.Enabled = true;
- }
- private void txtServerIP_TextChanged(object sender, EventArgs e)
- {
- btnFTPSave.Enabled = true;
- }
- private void txtUsername_TextChanged(object sender, EventArgs e)
- {
- btnFTPSave.Enabled = true;
- }
- private void btnFTPSave_Click(object sender, EventArgs e)
- {
- ftpServerIP = txtServerIP.Text.Trim();
- ftpUserID = txtUsername.Text.Trim();
- ftpPassword = txtPassword.Text.Trim();
- btnFTPSave.Enabled = false;
- }
- private void btnFileDetailList_Click(object sender, EventArgs e)
- {
- string[] filenames = GetFilesDetailList();
- lstFiles.Items.Clear();
- foreach (string filename in filenames)
- {
- lstFiles.Items.Add(filename);
- }
- }
- private void lstFiles_SelectedIndexChanged(object sender, EventArgs e)
- {
- }
- }
- }