📄 form1.cs
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Net;
namespace FtpWebLink
{
public partial class Form1 : Form
{
private string serverFileDirectory;
public Form1()
{
InitializeComponent();
}
private void FillDirectoryList(Stream strem)
{
StreamReader reader = new StreamReader(strem);
string content = reader.ReadToEnd();
string[] files = content.Split('\n');
listBox1.DataSource = files;
reader.Close();
}
private void buttonLink_Click(object sender, EventArgs e)
{
Cursor currentcursor = this.Cursor;
FtpWebResponse response = null;
Stream stream=null;
try
{
this.Cursor = Cursors.WaitCursor;
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(textBoxServer.Text);
request.Credentials = new NetworkCredential(textBoxUser.Text, textBoxpassword.Text);
request.Method = WebRequestMethods.Ftp.ListDirectory;
response = (FtpWebResponse)request.GetResponse();
stream = response.GetResponseStream();
FillDirectoryList(stream);
serverFileDirectory = null;
buttonOpemDirect.Enabled = false;
buttonFileDown.Enabled = false;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "error ftp client",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
if (response != null)
response.Close();
if (stream != null)
stream.Close();
this.Cursor = currentcursor;
}
}
private void buttonOpemDirect_Click(object sender, EventArgs e)
{
FtpWebResponse response = null;
Stream stream = null;
try
{
string subdirectory = listBox1.SelectedValue.ToString().Trim();
//serverDirectory = textBoxServer.Text.ToString();
serverFileDirectory += "/" + subdirectory;
Uri baseuri = new Uri(textBoxServer.Text);
Uri uri = new Uri(baseuri, serverFileDirectory);
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(uri);
request.Credentials = new NetworkCredential(textBoxUser.Text, textBoxpassword.Text);
request.Method = WebRequestMethods.Ftp.ListDirectory;
response = (FtpWebResponse)request.GetResponse();
stream = response.GetResponseStream();
FillDirectoryList(stream);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error Ftp Client",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
if (response != null)
response.Close();
if (stream != null)
stream.Close();
}
}
private void buttonFileDown_Click(object sender, EventArgs e)
{
FtpWebResponse response = null;
Stream Instream = null;
Stream Outsteam = null;
try
{
Uri baseu = new Uri(textBoxServer.Text);
string filename = listBox1.SelectedValue.ToString().Trim();
//string fullFileName = serverFileDirectory + @"/" + filename;
string fullFileName = @"/" + filename;
Uri uri = new Uri(baseu, fullFileName);
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(uri);
request.Credentials=new NetworkCredential(textBoxUser.Text,textBoxpassword.Text);
request.Method=WebRequestMethods.Ftp.DownloadFile;
request.UseBinary = checkBox1.Checked;
response = (FtpWebResponse)request.GetResponse();
Instream = response.GetResponseStream();
//string locafilename = "d:/"+fullFileName;
saveFileDialog1.Filter="所有文件(*.*)|*.*|文本文件(.txt)|*.txt";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
Outsteam = File.OpenWrite(saveFileDialog1.FileName);
//Outsteam = File.OpenWrite(locafilename);
byte[] buffer = new byte[4096];
int size = 0;
while ((size = Instream.Read(buffer, 0, 4096)) > 0)
{
Outsteam.Write(buffer, 0, size);
}
}
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message, "Error Ftp Client",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
if (response != null)
response.Close();
if (Instream != null)
Instream.Close();
if (Outsteam != null)
Outsteam.Close();
}
}
private void listBox1_SelectedIndex(object sender, EventArgs e)
{
this.buttonFileDown.Enabled = true;
this.buttonOpemDirect.Enabled = true;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -