⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ftpexplorerdlg.cs

📁 ftp浏览器
💻 CS
📖 第 1 页 / 共 3 页
字号:
			/* Now Remove Folder from FTP Server */
			if ( m_FtpClient.RemoveFolder(l_strFolder) == 0 ) {
				this.Cursor = Cursors.Arrow;
				string l_strError = m_FtpClient.ErrorMessage;
				MessageBox.Show(l_strError,"FTP Explorer",MessageBoxButtons.OK,MessageBoxIcon.Stop);
				return;
			}

			this.Cursor = Cursors.WaitCursor;
		
			/* Refresh File views for the Parent folder */
			string l_strParentDir = l_tnParentNode.Text;
			m_tVFolders.SelectedNode = l_tnParentNode;
		
			/* Clear all child nodes *
			l_tnParentNode.Nodes.Clear();
			RefreshFolderView(l_strParentFolder,l_strParentDir,l_tnParentNode);
			*/

			this.Cursor = Cursors.Arrow;
			return;
		}

		private void OnClickOptionsRefresh(object sender, System.EventArgs e) {
			Cursor = Cursors.WaitCursor;
			DataTable l_dtFileList = m_FtpClient.GetList(null);
			if ( l_dtFileList != null && l_dtFileList.Rows.Count > 0 ){
				/* Clear the root node */
				m_tVFolders.Nodes.Clear();

				m_tnRootNode = new TreeNode(m_FtpClient.RootDirectory,0,0);
				m_tVFolders.Nodes.Add(m_tnRootNode);

				PopulateFolders(m_tnRootNode,l_dtFileList);
				PopulateFiles(l_dtFileList);
			}
			else {
				Cursor = Cursors.Arrow;
				MessageBox.Show("No folders or files found");
				return;
			}
			Cursor = Cursors.Arrow;
		}

		private void OnClickOptionsUploadFile(object sender, System.EventArgs e) {
			OpenFileDialog l_openFileDialog = new OpenFileDialog();
			l_openFileDialog.CheckFileExists = true;
			l_openFileDialog.InitialDirectory = "C:\\";
			l_openFileDialog.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*";
			l_openFileDialog.Title = "Select file to upload";

			if ( l_openFileDialog.ShowDialog() == DialogResult.OK ){
				string l_strLocalFileFullName = l_openFileDialog.FileName;
				int l_iLen = l_strLocalFileFullName.Length;
				int l_iCtr = l_iLen;
				for ( l_iCtr-- ; l_iCtr > 0 ; l_iCtr-- ){
					char ch = l_strLocalFileFullName[l_iCtr];
					if ( ch == '\\' ){
						break;
					}
				}

				string l_strLocalFileName = l_strLocalFileFullName.Substring(l_iCtr+1);
				l_strLocalFileName.Trim();
				if ( l_strLocalFileName.Length == 0 ){
					MessageBox.Show("Select a valid file and click upload option","FTP Explorer - Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
					return;
				}

				SetStatusMessage("Uploading file. Please wait...","NONE","NONE");
				Cursor = Cursors.WaitCursor;
				string l_strRemoteFile = m_FtpClient.CurrentDirectory + "/" + l_strLocalFileName;
				int l_iRetval = m_FtpClient.UploadFile(l_strLocalFileFullName,l_strRemoteFile);
				Cursor = Cursors.Arrow;
				if ( l_iRetval == 0 ){
					MessageBox.Show(m_FtpClient.ErrorMessage,"FTP Explorer - Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
				}
				else {
		
					try {
						DataView l_dvFile = (DataView) m_dGFiles.DataSource;
						DataTable l_dtFileList = l_dvFile.Table;
						DataRow l_drNewRow = l_dtFileList.NewRow();
						if ( m_FtpClient.ServerOS == 1 ){
							/* Unix */
							l_drNewRow[0] = l_strLocalFileName;
							l_drNewRow[1] = DateTime.Today.ToShortDateString();
							l_drNewRow[2] = l_iRetval+1;
							l_drNewRow[3] = "unknown";
							l_drNewRow[4] = "unknown";
						}
						else if (m_FtpClient.ServerOS == 2) {
							/* Windows */
							l_drNewRow[0] = l_strLocalFileName;
							l_drNewRow[1] = DateTime.Today.ToShortDateString();
							l_drNewRow[2] = l_iRetval+1;
						}

						m_iFileCount++;
						l_dtFileList.Rows.Add(l_drNewRow);
						m_dGFiles.DataSource = l_dtFileList.DefaultView;
					}
					catch ( Exception e1){
					}
				}
				string l_strTemp = "Connected to " + m_FTPProperties.UserID + "@" + m_FTPProperties.FTPServer;
				SetStatusMessage(l_strTemp,"LIST","NONE");
			}
			return;
		}

		private void OnClickOptionsDownloadFile(object sender, System.EventArgs e) {
			if ( m_dGFiles.Focused == false ){
				MessageBox.Show("Select the entire row click download option","FTP Explorer - Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
				return;
			}
			int l_iCurrRow = m_dGFiles.CurrentRowIndex;
			string l_strFileName = (string) m_dGFiles[l_iCurrRow,0];
			l_strFileName.Trim();
			if ( l_strFileName.Length == 0 ){
				MessageBox.Show("Select a valid file and click download option","FTP Explorer - Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
				return;
			}

			SetStatusMessage("Downloading file. Please wait...","NONE","NONE");
			Cursor = Cursors.WaitCursor;
			string l_strLocalFile = m_strLocalFolder + "\\" + l_strFileName;
			int l_iRetval = m_FtpClient.DownLoadFile(l_strFileName,l_strLocalFile);
			Cursor = Cursors.Arrow;
			if ( l_iRetval == 0 ){
				MessageBox.Show(m_FtpClient.ErrorMessage,"FTP Explorer - Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
			string l_strTemp = "Connected to " + m_FTPProperties.UserID + "@" + m_FTPProperties.FTPServer;
			SetStatusMessage(l_strTemp,"LIST","NONE");
			return;
		}

		private void OnClickOptionsDeleteFile(object sender, System.EventArgs e) {
			DataGridCell l_dgcCurrent = m_dGFiles.CurrentCell;
			int l_iCurrentRow = m_dGFiles.CurrentCell.RowNumber;
			string l_strFileName = (string) m_dGFiles[l_dgcCurrent];
			l_strFileName.Trim();
			if ( l_strFileName.Length == 0 ){
				MessageBox.Show("Select a valid file and click delete option","FTP Explorer - Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
				return;
			}
			int l_iRetval = m_FtpClient.RemoveFile(l_strFileName);
			if ( l_iRetval == 1 ){
				try {
					m_iFileCount--;
					DataView l_dvFile = (DataView) m_dGFiles.DataSource;
					DataTable l_dtFileList = l_dvFile.Table;
					l_dtFileList.Rows.RemoveAt(l_iCurrentRow);
					m_dGFiles.DataSource = l_dtFileList.DefaultView;
					SetStatusMessage("NONE","LIST","NONE");
				}
				catch ( Exception e1){
				}
			}
		}

		private void OnClickOptionsSetLWD(object sender, System.EventArgs e) {
			FTPLocalFolderDlg localFolderdlg = new FTPLocalFolderDlg(m_strLocalFolder);
			if ( localFolderdlg.ShowDialog() == DialogResult.OK){
				m_strLocalFolder = localFolderdlg.LocalFolder;
			}
			SetStatusMessage("NONE","NONE",m_strLocalFolder);
		}

		private void OnClickClose(object sender, System.EventArgs e) {
			Close();
		}

		private void PopulateFolders(TreeNode l_tnCurrNode,DataTable l_dtFileList){
			int l_iFileType = 0;
			int l_iFolderCtr = 0;
			string l_strFileName = "";
			TreeNodeCollection l_tnCollection = l_tnCurrNode.Nodes;
			foreach(object obj in l_dtFileList.Rows){
				DataRow l_drRow = (DataRow) obj;
				l_iFileType = (int) l_drRow[0];
				l_strFileName = (string) l_drRow[1];

				/* Add only folders */
				if ( l_iFileType == 2 ){
					l_tnCollection.Add(new TreeNode(l_strFileName,1,2));
					l_iFolderCtr++;
				}
			}
			m_iFolderCount = l_iFolderCtr;
			SetStatusMessage("NONE","LIST","NONE");
			m_tVFolders.ExpandAll();
		}

		private void PopulateFiles(DataTable l_dtFileList){
			try {
				int l_iFileType = 0;
				int l_iFileCtr = 0;
				DataTable l_dtFiles = new DataTable("FileList");
				
				if ( m_FtpClient.ServerOS == 1 ){
					DataColumn l_dc1 = new DataColumn("File Name",typeof(string));
					DataColumn l_dc2 = new DataColumn("Created Date",typeof(string));
					DataColumn l_dc3 = new DataColumn("File Size",typeof(int));
					DataColumn l_dc4 = new DataColumn("File Owner",typeof(string));
					DataColumn l_dc5 = new DataColumn("File Group",typeof(string));

					l_dtFiles.Columns.Add(l_dc1);
					l_dtFiles.Columns.Add(l_dc2);
					l_dtFiles.Columns.Add(l_dc3);
					l_dtFiles.Columns.Add(l_dc4);
					l_dtFiles.Columns.Add(l_dc5);
				}
				else if (m_FtpClient.ServerOS == 2) {
					DataColumn l_dc1 = new DataColumn("File Name",typeof(string));
					DataColumn l_dc2 = new DataColumn("Created Date",typeof(string));
					DataColumn l_dc3 = new DataColumn("File Size",typeof(int));

					l_dtFiles.Columns.Add(l_dc1);
					l_dtFiles.Columns.Add(l_dc2);
					l_dtFiles.Columns.Add(l_dc3);
				}

				foreach(DataRow l_drRow in l_dtFileList.Rows){
					l_iFileType = (int) l_drRow[0];

					/* Add only files */
					if ( l_iFileType == 1 ){
						DataRow l_newRow = l_dtFiles.NewRow();
						if ( m_FtpClient.ServerOS == 1 ){
							/* Unix */
							l_newRow[0] = l_drRow[1];
							l_newRow[1] = l_drRow[3];
							l_newRow[2] = l_drRow[4];
							l_newRow[3] = l_drRow[5];
							l_newRow[4] = l_drRow[6];
						}
						else if (m_FtpClient.ServerOS == 2) {
							/* Windows */
							l_newRow[0] = l_drRow[1];
							l_newRow[1] = l_drRow[3];
							l_newRow[2] = l_drRow[4];
						}
						l_dtFiles.Rows.Add(l_newRow);
						l_iFileCtr++;
					}
				}
				m_dGFiles.DataSource = l_dtFiles.DefaultView;
				m_iFileCount = l_iFileCtr;
				SetStatusMessage("NONE","LIST","NONE");
			}
			catch ( Exception e){
				return ;
			}
		}

		private void OnAfterSelectFolderView(object sender, System.Windows.Forms.TreeViewEventArgs e) {
			try {
				if ( m_bNewNodeFlag == true ){
					m_bNewNodeFlag = false;
					return;
				}
				this.Cursor = Cursors.WaitCursor;
				/* Clear the File view contents */
				m_dGFiles.DataBindings.Clear();
				TreeNode l_tempNode = e.Node;
				if ( l_tempNode == m_tnRootNode ) {
					/*	If root node is clicked do not do anything */
					this.Cursor = Cursors.Arrow;
					return ;
				}
				
				/*	Clear all child nodes first */
				TreeNodeCollection l_tnCollection = l_tempNode.Nodes;
				if ( l_tnCollection != null ){
					l_tnCollection.Clear();
				}

				/*	Populate Folder view */
				string l_strCurDir = l_tempNode.Text;
				string l_strFullPath = l_tempNode.FullPath;
				l_strFullPath = l_strFullPath.Replace('\\','/');

				string l_strTemp = m_FTPProperties.UserID + "@" + m_FTPProperties.FTPServer;
				SetStatusMessage("Connected to " + l_strTemp,"Listing foldes and files. Please wait...","NONE");

				/*	Change to corresponding directory */
				int l_iRetval = m_FtpClient.ChangeWorkingFolder(l_strFullPath);
				if (l_iRetval == 0 ) {
					string l_strErr = m_FtpClient.ErrorMessage;
					this.Cursor = Cursors.Arrow;
					MessageBox.Show(l_strErr,"FTP Explorer - Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
					return ;
				}

				/* Get the file contents */
				DataTable l_dtFileList = m_FtpClient.GetList(l_strFullPath);
				if ( l_dtFileList != null ){
					PopulateFolders(l_tempNode,l_dtFileList);
					PopulateFiles(l_dtFileList);
				}
				this.Cursor = Cursors.Arrow;
				return;
			}
			catch ( Exception e1){
				this.Cursor = Cursors.Arrow;
				MessageBox.Show(e1.Message,"FTP Explorer - Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}

		private void OnFormClosing(object sender, System.ComponentModel.CancelEventArgs e) {
			if ( m_FtpClient != null ){
				m_FtpClient.Disconnect();
			}
			m_tVFolders.Nodes.Clear();
			m_dGFiles.DataBindings.Clear();
			EnableToolBarButtons(false);
		}

		private void EnableToolBarButtons(bool l_bStatus){
			toolBarButton1.Enabled = !l_bStatus;
			toolBarButton2.Enabled = l_bStatus;
			toolBarButton5.Enabled = l_bStatus;
			toolBarButton6.Enabled = l_bStatus;
			toolBarButton8.Enabled = l_bStatus;
			toolBarButton9.Enabled = l_bStatus;
			toolBarButton10.Enabled = l_bStatus;
			toolBarButton12.Enabled = l_bStatus;
			toolBarButton14.Enabled = l_bStatus;
		}
		
		private void SetStatusMessage(string l_strMessage1,string l_strMessage2,string l_strMessage3){
			if ( l_strMessage1.Equals("NONE") == false ){
				statusBarPanel1.Text = l_strMessage1;
			}
			
			if ( l_strMessage2.Equals("LIST") == true ){
				string l_strText = "Folder(s) :" + m_iFolderCount + ", File(s) :" + m_iFileCount;
				statusBarPanel2.Text = l_strText;
			}
			else if ( l_strMessage2.Equals("NONE") == false ){
				statusBarPanel2.Text = l_strMessage2;
			}
			
			if ( l_strMessage3.Equals("NONE") == false ){
				statusBarPanel3.Text = l_strMessage3;
			}
			m_sbStatus.Refresh();
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -