コード例 #1
0
 public void CompleteDownload(FTPLocalFileConfig config, string fname)
 {
     _fileUtil.MoveFileWithOverwrite(GetTransferPath(config).ConcatenateFilePaths(fname),
         GetDownloadPath(config).ConcatenateFilePaths(fname));
 }
コード例 #2
0
 public string GetArchivePath(FTPLocalFileConfig config)
 {
     return _fileUtil.EnsurePath(GetUploadPath(config).ConcatenateFilePaths("archive"));
 }
コード例 #3
0
 public string GetUploadPath(FTPLocalFileConfig config)
 {
     if (config.UsesEncryption)
         return _fileUtil.EnsurePath(config.UploadFolder.ConcatenateFilePaths(ENCRYPTED));
     return _fileUtil.EnsurePath(config.UploadFolder);
 }
コード例 #4
0
 public void ArchiveFile(FTPLocalFileConfig config, string fname)
 {
     _fileUtil.MoveFileWithOverwrite(GetUploadPath(config).ConcatenateFilePaths(fname),
         GetArchivePath(config).ConcatenateFilePaths(fname));
 }
コード例 #5
0
 public string GetUploadErrorPath(FTPLocalFileConfig config)
 {
     return _fileUtil.EnsurePath(GetUploadPath(config).ConcatenateFilePaths("error"));
 }
コード例 #6
0
 public IList<FileEntity> GetUploadFiles(FTPLocalFileConfig config)
 {
     return _fileUtil.GetListFromFolder(GetUploadPath(config),config.FileMask);
 }
コード例 #7
0
 public string GetDownloadErrorPath(FTPLocalFileConfig config)
 {
     return _fileUtil.EnsurePath(GetDownloadPath(config).ConcatenateFilePaths(ERROR));
 }
コード例 #8
0
 public string GetTransferPath(FTPLocalFileConfig config)
 {
     return _fileUtil.EnsurePath(GetDownloadPath(config).ConcatenateFilePaths(TRANSFER));
 }
コード例 #9
0
ファイル: FTPRepository.cs プロジェクト: agglerithm/CJRFTP
        private void upload(string remoteFolder, IEnumerable<FileEntity> files, FTPLocalFileConfig config)
        {
            _error = "";
            int result = _nav.SetCurrentDirectory(_conn,remoteFolder);
                if (result != 250 && result != 220)
                {
                    if (result == 550 && _nav.CurrentDirectory != RootDirectoryName)
                    {
                        MoveUp(1);
                        upload(remoteFolder, files, config);
                        return;
                    }
                    throw new CJRFTPException(config.UploadFolder, _conn.LastMessage);
                }
            files.ToList().ForEach(f => upload_file(f,config));

            if(_error.Length > 0)
                throw new Exception(_error);
        }
コード例 #10
0
ファイル: FTPRepository.cs プロジェクト: agglerithm/CJRFTP
 private void upload_file(FileEntity file, FTPLocalFileConfig config)
 {
     string remoteFile = file.FileName;
     try
     {
         string localFile = file.FullPath;
         _fileSvc.SendFile(_conn, localFile, remoteFile);
         _fileRepo.ArchiveFile(config, file.FileName);
     }
     catch (Exception ex)
     {
          Logger.Error(this, "Failed to upload file " + file.FileName, ex);
         _error += "Upload() caused an exception: " + ex.Message + "\r\n";
         throw new CJRFTPException(file, ex.Message);
     }
 }
コード例 #11
0
ファイル: FTPRepository.cs プロジェクト: agglerithm/CJRFTP
        private void download_file(FileEntity file, string prefix, FTPLocalFileConfig config)
        {
            string fname = file.FileName;
            try
            {

                if (fname == null || fname[0] == '\0') return;
                if (fname.IndexOf(prefix) < 0)
                    fname = prefix + fname;
                try
                {
                    _fileSvc.GetFile(_conn,  _fileRepo.GetTransferPath(config)
                        .ConcatenateFilePaths(fname),file.FileName);
                }
                catch(ApplicationException ex)
                {
                    throw new Exception("'Download()' resulted in the following error: " + ex.Message + ";Messages: " + _conn.MessageList.Combine(";"));
                }

                _fileRepo.CompleteDownload(config,fname);
            }
            catch (Exception ex)
            {
                _fileRepo.MoveToErrorFolder(_fileRepo.GetTransferPath(config), fname);
                throw new Exception("GetFile() caused an exception: " + ex.Message);
            }
            _fileSvc.DeleteFile(_conn, file.FileName);
        }
コード例 #12
0
ファイル: FTPRepository.cs プロジェクト: agglerithm/CJRFTP
 private void download(FTPLocalFileConfig config,
                        List<FileEntity> list)
 {
     list.ForEach(file => download_file(file, Prefix,
                                        config));
     return;
 }
コード例 #13
0
ファイル: FTPRepository.cs プロジェクト: agglerithm/CJRFTP
 public string UploadFolder(FTPLocalFileConfig config)
 {
     return _fileRepo.GetUploadPath(config);
 }
コード例 #14
0
ファイル: FTPRepository.cs プロジェクト: agglerithm/CJRFTP
 public void PutFiles(IList<FileEntity> files, FTPLocalFileConfig config, string remotePath)
 {
     if (files.Count == 0) return;
     ensure_logged_on();
     upload(remotePath, files, config);
 }
コード例 #15
0
ファイル: FTPRepository.cs プロジェクト: agglerithm/CJRFTP
 //        public string RenameToFolder
 //        {
 //            get; set;
 //        }
 public FileEntity[] GetFiles(string remotePath, FTPLocalFileConfig config)
 {
     ensure_logged_on();
     var flist = QueryFiles(remotePath);
     var files = build_file_list(flist, _fileRepo.GetDownloadPath(config)).ToList();
     download(config,files);
     return files.ToArray();
 }