/// <summary> /// 如果目录不存在,创建目录 /// </summary> /// <param name="dirName"></param> /// <param name="connection"></param> private void MakeSureDirExist(string dirName, FTPConnection connection) { if (!connection.DirectoryExists(dirName)) { connection.CreateDirectory(dirName); } }
public void UpdateAttachments(List<Attachment> filesToSave, List<string> localPathToSave, Procedure procedure) { if (filesToSave.Count > 0) { MedicalRecord medicalRecord = (from m in appManager.ApplicationDb.MedicalRecords from p in m.Procedures where p.Id == procedure.Id select m).FirstOrDefault(); Patient patient = (from p in appManager.ApplicationDb.Patients from m in p.MedicalHistory where m.Id == medicalRecord.Id select p).FirstOrDefault(); FTPConnection ftp = new FTPConnection("193.224.69.39", "balu", "szoftech", "hubasky/attachments"); string medicalRecordPath = String.Format("{0}/{1}", patient.Ssn, medicalRecord.Id); string ftpFileName = ""; try { ftp.CreateDirectory(medicalRecordPath); } catch (WebException) { //MessageBox.Show(e.Status.ToString() + ": Már létezik a könytár!"); } for (int i = 0; i < filesToSave.Count(); i++) { ftpFileName = String.Format("{0}/{1}_{2}_{3}", medicalRecordPath, procedure.Id, filesToSave[i].Id, filesToSave[i].File); ftp.UploadFile(ftpFileName, localPathToSave[i]); } } }
public static void CreateDirectoryEx(this FTPConnection connection, string directory) { // have to create each individual directory in the requested tree var dirFragment = directory; var dirTree = new List <string>(); while (!string.IsNullOrEmpty(dirFragment)) { var dir = Path.GetFileName(dirFragment); dirTree.Insert(0, dir); dirFragment = Path.GetDirectoryName(dirFragment); } for (var i = 0; i < dirTree.Count; i++) { var newDir = dirTree[i]; var bRet = false; try { bRet = connection.ChangeWorkingDirectory(newDir); } catch (FTPException) { } if (!bRet) { connection.CreateDirectory(newDir); connection.ChangeWorkingDirectory(newDir); } Debug.WriteLine(connection.ServerDirectory); } }
/// <summary> /// 在 FTP 服务器上创建一个目录 /// </summary> /// <param name="path"></param> public void CreateDirectory(string path) { if (String.IsNullOrEmpty(path.Trim())) { return; } m_pFtp.CreateDirectory("/" + path.TrimStart('/')); }
public static void CreateDirectory(IEnumerable <string> folderList) { var ftpConnect = new FTPConnection(); try { ftpConnect.ServerAddress = System.Configuration.ConfigurationManager.AppSettings["HostGoDaddy"].ToString(); ftpConnect.ServerPort = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["PortGoDaddy"].ToString()); ftpConnect.UserName = System.Configuration.ConfigurationManager.AppSettings["UsernameGoDaddy"].ToString(); ftpConnect.Password = System.Configuration.ConfigurationManager.AppSettings["PasswordGoDaddy"].ToString(); ftpConnect.Connect(); ftpConnect.ChangeWorkingDirectory("/public_html"); foreach (var tmp in folderList) { if (!ftpConnect.DirectoryExists(tmp)) { ftpConnect.CreateDirectory(tmp); } } } catch (Exception ex) { throw new Exception("Exception is " + ex.Message); } finally { ftpConnect.Close(); //ftpConnect.Dispose(); } }
static void Main(string[] args) { Local_long_listFiles = new List <string>(); Local_Short_listFiles = new List <string>(); string dirName = ConfigurationManager.AppSettings["dirName"]; if (Directory.Exists(dirName)) { Console.WriteLine("Подкаталоги:"); string[] dirs_ = Directory.GetDirectories(dirName); for (int i = 0; i < dirs_.Length; i++) { Local_long_listFiles.Add(dirs_[i]); dirs_[i] = new FileInfo(dirs_[i]).Name; // Выделяем короткое название из пути Local_Short_listFiles.Add(dirs_[i]); Console.WriteLine(Local_long_listFiles[i]); Console.WriteLine(Local_Short_listFiles[i]); /* string[] files = Directory.GetFiles(s); * foreach (string p in files) * { * Console.WriteLine(p); * }*/ } } FTPConnection ftp = new FTPConnection(); ftp.ConnectMode = FTPConnectMode.ACTIVE; ftp.ServerAddress = ConfigurationManager.AppSettings["ServerAddress"]; ftp.UserName = ConfigurationManager.AppSettings["UserName"]; ftp.Password = ConfigurationManager.AppSettings["UserName"]; ftp.Connect(); FTPFile[] filesFTP = ftp.GetFileInfos(); if (filesFTP.Length > 0) { //int a = 0; for (int i = 0; i < Local_Short_listFiles.Count; i++) { //Console.WriteLine(filesFTP[i].Name); for (int k = 0; k < filesFTP.Length; k++) { if (filesFTP[k].Name == Local_Short_listFiles[i]) { break; } if (k == filesFTP.Length - 1) { try { ftp.CreateDirectory(Local_Short_listFiles[i]); main_Long_files = Directory.GetFiles(Local_long_listFiles[i]); main_Short_files = Directory.GetFiles(Local_long_listFiles[i]); for (int s = 0; s < main_Short_files.Length; s++) { main_Short_files[s] = new FileInfo(main_Short_files[s]).Name; ftp.UploadFile(main_Long_files[s], ($"/{Local_Short_listFiles[i]}/{main_Short_files[s]}"), true); } } catch (Exception a) { Console.WriteLine("Ошибка при создании папки и копировании файлов"); } } } // удаляем каталог после записи try { DirectoryInfo dirInfo = new DirectoryInfo(Local_long_listFiles[i]); dirInfo.Delete(true); Console.WriteLine("Каталог удален"); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } else { for (int i = 0; i < Local_Short_listFiles.Count; i++) { try { ftp.CreateDirectory(Local_Short_listFiles[i]); main_Long_files = Directory.GetFiles(Local_long_listFiles[i]); main_Short_files = Directory.GetFiles(Local_long_listFiles[i]); for (int s = 0; s < main_Short_files.Length; s++) { main_Short_files[s] = new FileInfo(main_Short_files[s]).Name; ftp.UploadFile(main_Long_files[s], ($"/{Local_Short_listFiles[i]}/{main_Short_files[s]}"), true); } } catch (Exception a) { Console.WriteLine("Ошибка при создании папки и копировании файлов"); } // удаляем каталог после записи try { DirectoryInfo dirInfo = new DirectoryInfo(Local_long_listFiles[i]); dirInfo.Delete(true); Console.WriteLine("Каталог удален"); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } //ftp.CreateDirectory("testDir"); //ftp.UploadFile("C:/VisualStudioProject/TestFTP/NET/TestFTP/TestFTP/bin/Debug/test.txt", "/testDir/test.txt", true); //ftp.DownloadFile("test.txt", "testDir/test.txt"); /*string[] fileDetails = ftp.GetFiles(); * foreach (string a in fileDetails) * { * Console.WriteLine(a); * if (a == "./testDir") * { * Console.WriteLine("папка testDir"); * } * }*/ FTPFile[] filesFTP_ = ftp.GetFileInfos(); foreach (FTPFile d in filesFTP_) { Console.WriteLine(); Console.WriteLine(d + "информация о файле"); Console.WriteLine(); Console.WriteLine(d.Dir + " - Dir"); Console.WriteLine(d.Group + " - Group"); Console.WriteLine(d.LastModified + " - LastModified"); Console.WriteLine(d.Link + " - Link"); Console.WriteLine(d.LinkCount + " - LinkCount"); Console.WriteLine(d.LinkedName + " - LinkedName"); Console.WriteLine(d.Name + " - Name"); Console.WriteLine(d.Owner + " - Owner"); Console.WriteLine(d.Permissions + " - Permissions"); Console.WriteLine(d.Raw + " - Raw"); Console.WriteLine(d.Size + " - Size"); Console.WriteLine(d.Type + " - Type"); Console.WriteLine(); /*if (d.Name == "testDir") * { * Console.WriteLine("папка testDir"); * ftp.ChangeWorkingDirectory(d.Name); // сменить рабочую директорию * //foreach() * FTPFile[] files__FTP = ftp.GetFileInfos(); * foreach (FTPFile g in files__FTP) * { * Console.WriteLine(g); * } * * }*/ } // сортировка директории по дате создания (первая самая новая) FTPFile temp; for (int i = 0; i < filesFTP_.Length - 1; i++) { for (int j = i + 1; j < filesFTP_.Length; j++) { if (filesFTP_[i].LastModified < filesFTP_[j].LastModified) { temp = filesFTP_[i]; filesFTP_[i] = filesFTP_[j]; filesFTP_[j] = temp; } } } Console.WriteLine("После сортировки"); foreach (FTPFile a in filesFTP_) { Console.WriteLine(a.Name); } /*if (filesFTP_.Length > 1) * { * for (int i = 1; i < filesFTP_.Length; i++) * { * Console.WriteLine(filesFTP_[i].Name); * ftp.ChangeWorkingDirectory(filesFTP_[i].Name); // сменить рабочую директорию * FTPFile[] files__FTP = ftp.GetFileInfos(); * foreach (FTPFile g in files__FTP) * { * ftp.DeleteFile(g.Name); * } * Console.WriteLine("Файлы удалены из директории"); * ftp.ChangeWorkingDirectoryUp(); * ftp.DeleteDirectory(filesFTP_[i].Name); * Console.WriteLine("Старые директории удалены"); * * } * }*/ // Список локальных директорий /*string[] dirs = Directory.GetDirectories(@"D:\\APP", "*", SearchOption.TopDirectoryOnly); * for (int i = 0; i < dirs.Length; i++) * { * dirs[i] = new FileInfo(dirs[i]).Name; // Выделяем короткое название из пути * } * * // Список удаленных директорий * FTPFile[] file__Details = ftp.GetFileInfos(""); * foreach (FTPFile file in file__Details) * { * if (file.Dir && Array.Exists(dirs, x => x == file.Name)) * { * Console.WriteLine(file.Name + " " + file.Dir); * } * * //Console.WriteLine(file.Name + " " + file.Dir); * }*/ ftp.Close(); Console.Read(); }
public override IDirectoryViewItem CreateNewDirectory(string path) { connection.CreateDirectory(path); return(null);//TODO: fix }