Beispiel #1
0
 /// <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]);
         }
     }
 }
Beispiel #3
0
        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);
            }
        }
Beispiel #4
0
        /// <summary>
        /// 在 FTP 服务器上创建一个目录
        /// </summary>
        /// <param name="path"></param>
        public void CreateDirectory(string path)
        {
            if (String.IsNullOrEmpty(path.Trim()))
            {
                return;
            }

            m_pFtp.CreateDirectory("/" + path.TrimStart('/'));
        }
Beispiel #5
0
        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();
            }
        }
Beispiel #6
0
        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();
        }
Beispiel #7
0
 public override IDirectoryViewItem CreateNewDirectory(string path)
 {
     connection.CreateDirectory(path);
     return(null);//TODO: fix
 }