Example #1
0
        private string[] DownloadFTPFiles(bool loadToEditor = true)
        {
            try {
                //Check if items are selected
                if (fileList.SelectedItems.Count > 0) {
                    //Create directory if doesn't exist
                    string downloadDir = webFilesPath + ftpBox.Text.Replace("ftp://", "").Replace("/", "\\");
                    if (!Directory.Exists(downloadDir)) {
                        Directory.CreateDirectory(downloadDir);
                    }

                    //Download FTP files
                    List<string> filesToLoad = new List<string>();
                    FTPLibrary ftpLib = new FTPLibrary(userNameBox.Text, passwordBox.Password, isSecureConnection);
                    for (int i = 0; i < fileList.SelectedItems.Count; i++) {
                        // Make backup if already exist (conflict)
                        if (File.Exists(downloadDir + "\\" + fileList.SelectedItems[i].ToString())) {
                            if (File.Exists(downloadDir + "\\" + fileList.SelectedItems[i].ToString() + "~"))
                                File.Delete(downloadDir + "\\" + fileList.SelectedItems[i].ToString() + "~");
                            File.Move(downloadDir + "\\" + fileList.SelectedItems[i].ToString(),
                                downloadDir + "\\" + fileList.SelectedItems[i].ToString() + "~");
                        }

                        //Download FTP file
                        ftpLib.Download(ftpBox.Text + "\\" + fileList.SelectedItems[i].ToString(),
                            downloadDir + "\\" + fileList.SelectedItems[i].ToString());
                        filesToLoad.Add(downloadDir + "\\" + fileList.SelectedItems[i].ToString());
                    }
                    //Load file into editor
                    if (loadToEditor)
                        Load(filesToLoad.ToArray());

                    //Return file list
                    return filesToLoad.ToArray();
                }
                return null;
            }
            catch (Exception ex)
            {
                ShowStatus(ex.Message);
                return null;
            }
        }