Guest User

Untitled

a guest
Sep 22nd, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 27.32 KB | None | 0 0
  1. proof for kels
  2.  
  3. using System;
  4. using System.Collections.Generic;
  5. using System.ComponentModel;
  6. using System.Data;
  7. using System.Drawing;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Windows.Forms;
  11. using System.IO;
  12. using System.Net;
  13.  
  14. namespace SimpleFTP
  15. {
  16.     public partial class MainWindow : Form
  17.     {
  18.         string workingDirectoryLocal;
  19.  
  20.         public MainWindow()
  21.         {
  22.             InitializeComponent();
  23.             // Add disks to combobox
  24.             string[] allDisks = Directory.GetLogicalDrives();
  25.             foreach (string disks in allDisks)
  26.             {
  27.                 comboBox1.Items.Add(disks);
  28.             }
  29.         }
  30.  
  31.         #region miscellaneous
  32.  
  33.         List<ListViewItem> itemsUL = new List<ListViewItem>();
  34.         List<ListViewItem> itemsDL = new List<ListViewItem>();
  35.  
  36.         #endregion
  37.        
  38.         #region populate drives
  39.  
  40.         private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
  41.         {
  42.             // If the combobox selection isn't null, get directories
  43.             if (comboBox1.SelectedItem != null)
  44.             {
  45.                 getDirectoryFrmCombo();
  46.             }
  47.         }
  48.  
  49.         public void getDirectoryFrmCombo()
  50.         {
  51.             try
  52.             {
  53.                 // Add the selected disks local directorys to the local treeview
  54.                 localTreeView.Nodes.Clear();
  55.                 localTreeView.ImageIndex = 0;
  56.                 string[] dirs = Directory.GetDirectories(comboBox1.SelectedItem.ToString());
  57.                 foreach (string dir in dirs)
  58.                 {
  59.                     localTreeView.Nodes.Add(dir);
  60.                 }
  61.             }
  62.             catch (Exception ex)
  63.             {
  64.                 MessageBox.Show(ex.Message);
  65.             }
  66.         }
  67.        
  68.         #endregion
  69.  
  70.         #region local
  71.  
  72.         private void localRefresh()
  73.         {
  74.             try
  75.             {
  76.                 localListView.Items.Clear();
  77.                 string[] files = Directory.GetFiles(workingDirectoryLocal);
  78.                 localListView.Items.Add(workingDirectoryLocal, 0);
  79.                 foreach (string file in files)
  80.                 {
  81.                     ListViewItem item = new ListViewItem(file);
  82.                     FileInfo fileInfo = new FileInfo(file);
  83.                     localListView.Items.Add(item);
  84.                     item.ImageIndex = 1;
  85.                     item.SubItems.Add(string.Format("{0}", fileInfo.Name));
  86.                     item.SubItems.Add(string.Format("{0} KB", fileInfo.Length / 1024));
  87.                     item.SubItems.Add(string.Format("{0}", fileInfo.LastAccessTime));
  88.                 }
  89.             }
  90.  
  91.             catch (Exception ex)
  92.             {
  93.                 MessageBox.Show(ex.Message);
  94.             }
  95.         }
  96.  
  97.         private void localAddQueue()
  98.         {
  99.             try
  100.             {
  101.                 List<string> fileForQueue = new List<string>();
  102.                 // Add each selected item to filesforqueue array list
  103.                 foreach (ListViewItem file in localListView.SelectedItems)
  104.                 {
  105.                     fileForQueue.Add(file.Text);
  106.                 }
  107.                 foreach (ListViewItem file in queueListView.Items)
  108.                 {
  109.                     fileForQueue.Remove(file.Text);
  110.                 }
  111.                 foreach (string file in fileForQueue)
  112.                 {
  113.                     //For each file in files for queue add the items to the queue list view
  114.                     ListViewItem item = new ListViewItem(file);
  115.                     FileInfo info = new FileInfo(file);
  116.                     queueListView.Items.Add(item);
  117.                     item.SubItems.Add(string.Format("{0}", info.Name));
  118.                     item.SubItems.Add(string.Format("{0} KB", info.Length / 1024));
  119.                     item.SubItems.Add(string.Format("{0}", info.LastAccessTime));
  120.                     string ul = "UL"; //Add the ul tag
  121.                     item.SubItems.Add(ul);
  122.                 }
  123.             }
  124.  
  125.  
  126.             catch (Exception ex)
  127.             {
  128.             }
  129.         }
  130.  
  131.         private void uploadMethod(List<ListViewItem> uploadItem)
  132.         {
  133.             WorkerClass wc = new WorkerClass();
  134.             if (serverTreeView.SelectedNode != null && serverTreeView.SelectedNode.Text != "/root")
  135.             {
  136.                 wc.ftpUpload(uploadItem, hostTxtBx.Text, usernameTxtBx.Text, passTxtBx.Text, serverTreeView.SelectedNode.Text);
  137.                 serverRefresh(hostTxtBx.Text, serverTreeView.SelectedNode.Text);
  138.             }
  139.             else
  140.             {
  141.                 wc.ftpUpload(uploadItem, hostTxtBx.Text, usernameTxtBx.Text, passTxtBx.Text, null);
  142.                 connect_NoDirectory();
  143.             }
  144.         }
  145.  
  146.         private void localTreeView_AfterSelect(object sender, TreeViewEventArgs e)
  147.         {
  148.             // Add selected treeview node to working directory and directory string
  149.             workingDirectoryLocal = localTreeView.SelectedNode.Text;
  150.             string directory = localTreeView.SelectedNode.Text;
  151.             browseTxtBx.Text = localTreeView.SelectedNode.Text;// Show drive in browse text box
  152.             try
  153.             {
  154.                 localListView.Items.Clear();// clear listview
  155.                 string[] files = Directory.GetFiles(directory);//Get files in directory and store in string array
  156.                 localListView.Items.Add(directory, 0);//Add directories to list view
  157.                 foreach (string file in files)
  158.                 {
  159.                     // Create store file info in listviewitem and fileinfo objects
  160.                     ListViewItem item = new ListViewItem(file);
  161.                     FileInfo fileInfo = new FileInfo(file);
  162.                     localListView.Items.Add(item); //Add file directory info to locallistview
  163.                     item.ImageIndex = 1;//Add file image index to item objects
  164.                     //Populate columns of listview control
  165.                     item.SubItems.Add(string.Format("{0}", fileInfo.Name));
  166.                     item.SubItems.Add(string.Format("{0} KB", fileInfo.Length / 1024));
  167.                     item.SubItems.Add(string.Format("{0}", fileInfo.LastAccessTime));
  168.                 }
  169.             }
  170.  
  171.             catch (Exception ex)
  172.             {
  173.                 MessageBox.Show(ex.Message);
  174.             }
  175.         }
  176.  
  177.         private void localTreeView_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
  178.         {
  179.             if (e.Button != MouseButtons.Right)
  180.             {
  181.                 string selectedNode = localTreeView.SelectedNode.Text;
  182.                 try
  183.                 {
  184.                     string[] dirs = Directory.GetDirectories(selectedNode); //Get directories from selected node
  185.                     localTreeView.SelectedNode.Nodes.Clear();
  186.                     foreach (string dir in dirs)
  187.                     {
  188.                         // For each directory in directory array add directory to nodes
  189.                         localTreeView.SelectedNode.Nodes.Add(dir);
  190.                         localTreeView.SelectedNode.Expand();
  191.                         string[] files = Directory.GetFiles(dir);
  192.                     }
  193.                 }
  194.  
  195.                 catch (Exception ex)
  196.                 {
  197.                     MessageBox.Show(ex.Message);
  198.                 }
  199.             }
  200.         }
  201.  
  202.         private void localLvContextMenu_Opening(object sender, CancelEventArgs e)
  203.         {
  204.             // Only open context menu if locallistview has a selected item
  205.             if (localListView.SelectedItems.Count == 0)
  206.                 e.Cancel = true;
  207.         }
  208.  
  209.         private void uploadToolStripMenuItem_Click(object sender, EventArgs e)
  210.         {
  211.             foreach (ListViewItem item in localListView.SelectedItems)
  212.             {
  213.                 itemsUL.Add(item);
  214.             }
  215.             uploadMethod(itemsUL);
  216.         }
  217.  
  218.         private void addToQueueToolStripMenuItem_Click(object sender, EventArgs e)
  219.         {
  220.             localAddQueue();
  221.         }
  222.  
  223.         #endregion
  224.  
  225.         #region server
  226.  
  227.         private void downloadMethod(List<ListViewItem> downloadItems)
  228.         {
  229.             WorkerClass wc = new WorkerClass();
  230.             wc.ftpDownload(downloadItems, hostTxtBx.Text, usernameTxtBx.Text, passTxtBx.Text, workingDirectoryLocal);
  231.             localRefresh();
  232.         }
  233.  
  234.         private void serverRefresh(string host, string workingDirectory)
  235.         {
  236.             StringBuilder result = new StringBuilder();
  237.             FtpWebRequest ftpReq;
  238.             FtpWebRequest fileSizeReq;
  239.  
  240.             if (!host.StartsWith("ftp://"))
  241.             {
  242.                 host = "ftp://" + host;
  243.             }
  244.  
  245.             if (serverTreeView.SelectedNode.Text == "/root")
  246.             {
  247.                 serverListView.Items.Clear();
  248.  
  249.                 try
  250.                 {
  251.                     ftpReq = (FtpWebRequest)FtpWebRequest.Create(new Uri(host));
  252.                     ftpReq.UseBinary = true;
  253.                     ftpReq.Credentials = new NetworkCredential(usernameTxtBx.Text, passTxtBx.Text);
  254.                     ftpReq.Method = WebRequestMethods.Ftp.ListDirectory;
  255.                     WebResponse response = ftpReq.GetResponse();
  256.                     StreamReader sr = new StreamReader(response.GetResponseStream());
  257.                     string line = sr.ReadLine();
  258.                     while (line != null)
  259.                     {
  260.                         result.Append(line);
  261.                         result.Append("\n");
  262.                         line = sr.ReadLine();
  263.                     }
  264.  
  265.                     result.Remove(result.ToString().LastIndexOf('\n'), 1);
  266.                     sr.Close();
  267.                     response.Close();
  268.                     string[] resultArray = result.ToString().Split('\n');
  269.                     if (resultArray != null)
  270.                     {
  271.                         foreach (string file in resultArray)
  272.                         {
  273.                             if (file.Contains("."))
  274.                             {
  275.                                 ListViewItem item = new ListViewItem("/" + file);
  276.                                 FileInfo info = new FileInfo(file);
  277.                                 fileSizeReq = (FtpWebRequest)FtpWebRequest.Create(new Uri(host + "/" + file));
  278.                                 fileSizeReq.UseBinary = true;
  279.                                 fileSizeReq.Credentials = new NetworkCredential(usernameTxtBx.Text, passTxtBx.Text);
  280.                                 fileSizeReq.Method = WebRequestMethods.Ftp.GetFileSize;
  281.                                 fileSizeReq.Method = WebRequestMethods.Ftp.GetDateTimestamp;
  282.                                 fileSizeReq.UseBinary = true;
  283.                                 FtpWebResponse loginresponse = (FtpWebResponse)fileSizeReq.GetResponse();
  284.                                 FtpWebResponse fileSizeResponse = (FtpWebResponse)fileSizeReq.GetResponse();
  285.                                 FtpWebResponse dateTimeStamp = (FtpWebResponse)fileSizeReq.GetResponse();
  286.                                 string dateTimeStampString = dateTimeStamp.LastModified.ToString();
  287.                                 long size = fileSizeResponse.ContentLength;
  288.                                 serverListView.Items.Add(item);
  289.                                 item.SubItems.Add(string.Format("{0}", info.Name));
  290.                                 item.SubItems.Add(string.Format("{0} KB", size / 1024 ));
  291.                                 item.SubItems.Add(string.Format("{0}", dateTimeStampString));
  292.                             }
  293.                             else
  294.                             {
  295.                             }
  296.                         }
  297.                         serverTreeView.Refresh();
  298.                     }
  299.                 }
  300.                 catch (Exception ex)
  301.                 { MessageBox.Show(ex.Message); }
  302.             }
  303.             else
  304.             {
  305.                 serverListView.Items.Clear();
  306.                 try
  307.                 {
  308.                     ftpReq = (FtpWebRequest)FtpWebRequest.Create(new Uri(host + workingDirectory + "/"));
  309.                     ftpReq.UseBinary = true;
  310.                     ftpReq.Credentials = new NetworkCredential(usernameTxtBx.Text, passTxtBx.Text);
  311.                     ftpReq.Method = WebRequestMethods.Ftp.ListDirectory;
  312.                     FtpWebResponse response = (FtpWebResponse)ftpReq.GetResponse();
  313.                     StreamReader sr = new StreamReader(response.GetResponseStream());
  314.                     string line = sr.ReadLine();
  315.                     while (line != null)
  316.                     {
  317.                         result.Append(line);
  318.                         result.Append("\n");
  319.                         line = sr.ReadLine();
  320.                     }
  321.  
  322.                     result.Remove(result.ToString().LastIndexOf('\n'), 1);
  323.                     sr.Close();
  324.                     response.Close();
  325.                     string[] resultArray = result.ToString().Split('\n');
  326.  
  327.                     if (resultArray != null)
  328.                     {
  329.                         foreach (string file in resultArray)
  330.                         {
  331.                             if (file.Contains("."))
  332.                             {
  333.                                 ListViewItem item = new ListViewItem(workingDirectory + "/" + file);
  334.                                 FileInfo info = new FileInfo(file);
  335.                                 fileSizeReq = (FtpWebRequest)FtpWebRequest.Create(new Uri(host + workingDirectory + "/" + info));
  336.                                 fileSizeReq.UseBinary = true;
  337.                                 fileSizeReq.Credentials = new NetworkCredential(usernameTxtBx.Text, passTxtBx.Text);
  338.                                 fileSizeReq.Method = WebRequestMethods.Ftp.GetFileSize;
  339.                                 fileSizeReq.UseBinary = true;
  340.                                 FtpWebResponse loginresponse = (FtpWebResponse)fileSizeReq.GetResponse();
  341.                                 FtpWebResponse fileSizeResponse = (FtpWebResponse)fileSizeReq.GetResponse();
  342.                                 FtpWebResponse dateTimeStamp = (FtpWebResponse)fileSizeReq.GetResponse();
  343.                                 string dateTimeStampString = dateTimeStamp.LastModified.ToString();
  344.                                 long size = fileSizeResponse.ContentLength;
  345.                                 serverListView.Items.Add(item);
  346.                                 item.SubItems.Add(string.Format("{0}", info.Name));
  347.                                 item.SubItems.Add(string.Format("{0} KB", size / 1024 ));
  348.                                 item.SubItems.Add(string.Format("{0}", dateTimeStampString));
  349.                             }
  350.                             else
  351.                             {
  352.                             }
  353.                         }
  354.                         serverTreeView.Refresh();
  355.                     }
  356.                 }
  357.                 catch (Exception ex)
  358.                 { }
  359.             }
  360.         }
  361.  
  362.         private void serverAddQueue()
  363.         {
  364.             try
  365.             {
  366.                 List<string> fileForQueue = new List<string>();
  367.                 foreach (ListViewItem file in serverListView.SelectedItems)
  368.                 {
  369.                     fileForQueue.Add(file.Text);
  370.                 }
  371.  
  372.                 foreach (ListViewItem file in queueListView.Items)
  373.                 {
  374.                     fileForQueue.Remove(file.Text);
  375.                 }
  376.                 int i = 0;
  377.                 foreach (string file in fileForQueue)
  378.                 {
  379.                     ListViewItem item = new ListViewItem(file);
  380.                     FileInfo info = new FileInfo(file);
  381.                     queueListView.Items.Add(item);
  382.                     item.SubItems.Add(string.Format("{0}", info.Name));
  383.                     string ul = "DL";
  384.                     item.SubItems.Add(serverListView.Items[i].SubItems[2].Text);
  385.                     item.SubItems.Add(serverListView.Items[i].SubItems[3].Text);
  386.                     item.SubItems.Add(ul);
  387.                     i++;
  388.                 }
  389.             }
  390.  
  391.  
  392.             catch (Exception ex)
  393.             {
  394.                 MessageBox.Show(ex.Message);
  395.             }
  396.         }
  397.        
  398.         private void serverDoubleSelect(string host, string firstNode)
  399.         {
  400.             StringBuilder result = new StringBuilder();
  401.             FtpWebRequest req;
  402.             try
  403.             {
  404.                 req = (FtpWebRequest)FtpWebRequest.Create(new Uri(host));
  405.                 req.UseBinary = true;
  406.                 req.Credentials = new NetworkCredential(usernameTxtBx.Text, passTxtBx.Text);
  407.                 req.Method = WebRequestMethods.Ftp.ListDirectory;
  408.                 WebResponse response = req.GetResponse();
  409.                 StreamReader sr = new StreamReader(response.GetResponseStream());
  410.                 string line = sr.ReadLine();
  411.                 while (line != null)
  412.                 {
  413.                     result.Append(line);
  414.                     result.Append("\n");
  415.                     line = sr.ReadLine();
  416.                 }
  417.  
  418.                 result.Remove(result.ToString().LastIndexOf('\n'), 1);
  419.                 sr.Close();
  420.                 response.Close();
  421.                 string[] resultArray = result.ToString().Split('\n');
  422.  
  423.                 if (resultArray != null)
  424.                 {
  425.                     if (firstNode != null)
  426.                     {
  427.                         serverTreeView.Nodes.Clear();
  428.                         serverTreeView.Nodes.Add("/" + firstNode);
  429.                         foreach (string parentDir in resultArray)
  430.                         {
  431.                             TreeNode parentNode = new TreeNode(parentDir);
  432.  
  433.                             if (parentDir.Contains("."))
  434.                             {
  435.                             }
  436.                             else
  437.                             {
  438.                                 serverTreeView.Nodes.Add(parentNode);
  439.                             }
  440.                         }
  441.                         serverTreeView.Refresh();
  442.                     }
  443.                     else if (firstNode == null)
  444.                     {
  445.                         foreach (string childDir in resultArray)
  446.                         {
  447.                             TreeNode childNode = new TreeNode("/" + childDir);
  448.  
  449.                             if (childDir.Contains("."))
  450.                             {
  451.                             }
  452.                             else
  453.                             {
  454.                                 serverTreeView.SelectedNode.Nodes.Add(childNode);
  455.                             }
  456.                         }
  457.                         serverTreeView.SelectedNode.Expand();
  458.                         serverTreeView.Refresh();
  459.                     }
  460.                 }
  461.             }
  462.             catch
  463.             { }
  464.         }
  465.  
  466.         private void serverTreeView_AfterSelect(object sender, TreeViewEventArgs e)
  467.         {
  468.             serverRefresh(hostTxtBx.Text, serverTreeView.SelectedNode.Text);
  469.         }
  470.  
  471.         private void serverTreeView_MouseDoubleClick(object sender, MouseEventArgs e)
  472.         {
  473.             if (serverTreeView.SelectedNode.Text == "/root")
  474.             {
  475.                 serverListView.Items.Clear();
  476.                 string firstNode = "root";
  477.                 string host = hostTxtBx.Text;
  478.                 if (!host.StartsWith("ftp://"))
  479.                 {
  480.                     host = "ftp://" + host;
  481.                 }
  482.                 serverDoubleSelect(host, firstNode);
  483.             }
  484.             else
  485.             {
  486.                 string firstNode = null;
  487.                 string host = hostTxtBx.Text;
  488.                 if (!host.StartsWith("ftp://"))
  489.                 {
  490.                     host = "ftp://" + host;
  491.                 }
  492.                 host = host + serverTreeView.SelectedNode.Text;
  493.                 serverDoubleSelect(host, firstNode);
  494.             }
  495.         }
  496.  
  497.         private void downloadToolStripMenuItem_Click(object sender, EventArgs e)
  498.         {
  499.             foreach (ListViewItem item in serverListView.SelectedItems)
  500.             {
  501.                 itemsDL.Add(item);
  502.             }
  503.             downloadMethod(itemsDL);
  504.         }
  505.  
  506.         private void addToQueueToolStripMenuItem2_Click(object sender, EventArgs e)
  507.         {
  508.             serverAddQueue();
  509.         }
  510.  
  511.         #endregion
  512.  
  513.         #region queue
  514.  
  515.         private void removeQueue()
  516.         {
  517.             if (queueListView.SelectedItems.Count > 0)
  518.             {
  519.                 List<ListViewItem> deletedItems = new List<ListViewItem>();
  520.                 //For each file in the list view control add to the deleted items collection
  521.                 foreach (ListViewItem item in queueListView.SelectedItems)
  522.                 {
  523.                     deletedItems.Add(item);
  524.                 }
  525.                 //Remove the items
  526.                 foreach (ListViewItem item in deletedItems)
  527.                 {
  528.                     item.Remove();
  529.                 }
  530.             }
  531.         }
  532.  
  533.         private void processQueueMethod()
  534.         {
  535.             WorkerClass wc = new WorkerClass();
  536.             try
  537.             {
  538.                 foreach (ListViewItem item in queueListView.Items)
  539.                 {
  540.                     string ulOrDl = item.SubItems[4].Text;
  541.                     string ulCompare = "UL";
  542.                     string dlCompare = "DL";
  543.                     if (ulOrDl == ulCompare)
  544.                         itemsUL.Add(item);
  545.                     else if (dlCompare == ulOrDl)
  546.                         itemsDL.Add(item);
  547.                 }                  
  548.             }
  549.  
  550.             catch (Exception ex)
  551.             { MessageBox.Show(ex.Message); }
  552.  
  553.             uploadMethod(itemsUL);
  554.             downloadMethod(itemsDL);
  555.         }
  556.  
  557.         private void processQueueToolStripMenuItem_Click(object sender, EventArgs e)
  558.         {
  559.             processQueueMethod();            
  560.         }
  561.  
  562.         private void removeToolStripMenuItem_Click(object sender, EventArgs e)
  563.         {
  564.             removeQueue();
  565.         }
  566.  
  567.         private void queKeyDown(object sender, KeyEventArgs e)
  568.         {
  569.             switch (e.KeyCode)
  570.             {
  571.                 case Keys.Delete:
  572.                     removeQueue();
  573.                     break;
  574.             }
  575.         }
  576.  
  577.         #endregion
  578.  
  579.         #region file menu
  580.  
  581.         private void uploadToolStripMenuItem1_Click(object sender, EventArgs e)
  582.         {
  583.             foreach (ListViewItem item in localListView.SelectedItems)
  584.             {
  585.                 itemsUL.Add(item);
  586.             }
  587.             uploadMethod(itemsUL);
  588.         }
  589.  
  590.         private void downloadToolStripMenuItem1_Click(object sender, EventArgs e)
  591.         {
  592.             foreach (ListViewItem item in serverListView.SelectedItems)
  593.             {
  594.                 itemsDL.Add(item);
  595.             }
  596.             downloadMethod(itemsDL);
  597.         }
  598.  
  599.         private void addToQueueToolStripMenuItem1_Click(object sender, EventArgs e)
  600.         {
  601.             localAddQueue();
  602.             serverAddQueue();
  603.         }
  604.  
  605.         private void processQueueToolStripMenuItem1_Click(object sender, EventArgs e)
  606.         {
  607.             processQueueMethod();
  608.         }
  609.  
  610.         private void exitToolStripMenuItem_Click(object sender, EventArgs e)
  611.         {
  612.             this.Close();
  613.         }
  614.  
  615.         #endregion
  616.  
  617.         #region Buttons
  618.  
  619.         private void connect_NoDirectory()
  620.         {
  621.             serverListView.Items.Clear();
  622.             string firstNode = "/root";
  623.             StringBuilder result = new StringBuilder();
  624.             FtpWebRequest ftpReq;
  625.             FtpWebRequest fileSizeReq;
  626.             string host = hostTxtBx.Text;
  627.             if (!host.StartsWith("ftp://"))
  628.             {
  629.                 host = "ftp://" + host;
  630.             }
  631.             try
  632.             {
  633.                 serverTreeView.Nodes.Clear();
  634.                 ftpReq = (FtpWebRequest)FtpWebRequest.Create(new Uri(host));
  635.                 ftpReq.UseBinary = true;
  636.                 ftpReq.Credentials = new NetworkCredential(usernameTxtBx.Text, passTxtBx.Text);
  637.                 ftpReq.Method = WebRequestMethods.Ftp.ListDirectory;
  638.                 WebResponse response = ftpReq.GetResponse();
  639.                 StreamReader sr = new StreamReader(response.GetResponseStream());
  640.                 string line = sr.ReadLine();
  641.                 while (line != null)
  642.                 {
  643.                     result.Append(line);
  644.                     result.Append("\n");
  645.                     line = sr.ReadLine();
  646.                 }
  647.  
  648.                 result.Remove(result.ToString().LastIndexOf('\n'), 1);
  649.                 sr.Close();
  650.                 response.Close();
  651.                 string[] resultArray = result.ToString().Split('\n');
  652.  
  653.                 if (resultArray != null)
  654.                 {
  655.                     serverTreeView.Nodes.Add(firstNode);
  656.                     foreach (string parentDir in resultArray)
  657.                     {
  658.                         TreeNode parentNode = new TreeNode("/" + parentDir);
  659.                         if (parentDir.Contains("."))
  660.                         {
  661.                             ListViewItem item = new ListViewItem("/" + parentDir);
  662.                             FileInfo info = new FileInfo(parentDir);
  663.                             fileSizeReq = (FtpWebRequest)FtpWebRequest.Create(new Uri(host + "/" + parentDir));
  664.                             fileSizeReq.UseBinary = true;
  665.                             fileSizeReq.Credentials = new NetworkCredential(usernameTxtBx.Text, passTxtBx.Text);
  666.                             fileSizeReq.Method = WebRequestMethods.Ftp.GetFileSize;
  667.                             fileSizeReq.Method = WebRequestMethods.Ftp.GetDateTimestamp;
  668.                             fileSizeReq.UseBinary = true;
  669.                             FtpWebResponse loginresponse = (FtpWebResponse)fileSizeReq.GetResponse();
  670.                             FtpWebResponse fileSizeResponse = (FtpWebResponse)fileSizeReq.GetResponse();
  671.                             FtpWebResponse dateTimeStamp = (FtpWebResponse)fileSizeReq.GetResponse();
  672.                             string dateTimeStampString = dateTimeStamp.LastModified.ToString();
  673.                             fileSizeResponse = (FtpWebResponse)fileSizeReq.GetResponse();
  674.                             long size = fileSizeResponse.ContentLength;
  675.                             serverListView.Items.Add(item);
  676.                             item.SubItems.Add(string.Format("{0}", info.Name));
  677.                             item.SubItems.Add(string.Format("{0} KB", size / 1024 ));
  678.                             item.SubItems.Add(dateTimeStampString);
  679.                         }
  680.                         else
  681.                         {
  682.                             serverTreeView.Nodes.Add(parentNode);
  683.                         }
  684.                     }
  685.                     serverTreeView.Refresh();
  686.                 }
  687.             }
  688.             catch (Exception ex)
  689.             {
  690.                 MessageBox.Show(ex.Message);
  691.             }
  692.         }
  693.  
  694.         private void cnctBtn_Click(object sender, EventArgs e)
  695.         {
  696.             connect_NoDirectory();
  697.         }
  698.  
  699.         private void pqBtn_Click(object sender, EventArgs e)
  700.         {
  701.             processQueueMethod();
  702.         }
  703.  
  704.         private void riBtn_Click(object sender, EventArgs e)
  705.         {
  706.  
  707.         }
  708.  
  709.         #endregion
  710.     }
  711. }
Add Comment
Please, Sign In to add comment