c# ftp 다중 다운로드

나는 FTP 서버에서 여러 파일을 다운로드해야합니다, 코드를 사용하고 있습니다 . FTPWebRequest를 사용하지 않고 C #을 사용하여 FTP에서 여러 다운로드 / 업로드 병렬을 수행하려고합니다. 나는 내 사용자 정의 코드를 작성하고 두 번째 하나는 0 KB (또한 다운로드)로 크기를 표시하는 동안 동시에 두 개의 파일을 다운로드하려고 할 때 제대로 다운로드를 얻을. 이 문서에서는 FTPWebRequest를 사용하여 FTP 서버에서 여러 파일을 다운로드하도록 코딩하는 방법에 대한 간략한 설명입니다. 독자는 FTP (파일 전송 프로토콜) 및 C ++의 기본 개념에 대한 지식을 가지고 있다고 가정합니다. 와일드카드는 이름이 패턴과 일치하는 여러 파일 또는 디렉터리를 지정하는 데 사용됩니다. 지원되는 와일드카드: FTPWebRequest를 사용하여 여러 파일을 다운로드하는 방법을 설명합니다. FileSet 개체는 여러 디렉토리 (또는 전체 디렉토리 트리)에서 파일을 단일 디렉토리에 업로드 (또는 다운로드)하는 데 사용할 수 있습니다 – Rebex.IO.FileSet.Flatten을 true로 설정하고 업로드 또는 다운로드 메서드를 호출합니다. FTP 다운로드를 병렬화하는 것에 대해 생각해 본 적이 없었지만 SO에서이 질문은 FTP 서버에서 병렬로 여러 파일을 다운로드 할 수있는 설정이 있습니까 https://stackoverflow.com/questions/18117536/c-sharp-multiple-download-from-ftp-using-parallel-task-duplicate-download-issu 유효한 구현처럼 보입니다. 지금까지 우리가 배운 것은 한 번에 하나의 파일만 다운로드 할 수 있다는 것입니다. 우리는 여러 파일을 다운로드해야하거나 FTP 서버에서 전체 디렉토리 구조 (파일 및 하위 디렉토리 등)를 다운로드해야하는 경우 어떻게.

현재 .NET에는 이러한 API가 없습니다. 그래서, 우리는 어려운 일을해야. 정확히 내가 원하는 것은 폴더에 여러 파일을 다운로드하고 파일을 하나씩 사용해야한다는 것입니다. 간단한 와일드카드 패터가 충분히 강력하지 않은 경우 Rebex.IO.FileSet 개체를 사용합니다. 여러 일치 기준(예: 모든 „.txt” 및 „.csv” 파일)을 결합하고 제외 기준도 지정할 수 있습니다. 어쨌든 이것은 내가 필요로하는 실제 응용 프로그램에 대해 나를 제공하지 않는다는 것을 제외하고는 필요한 것처럼 보입니다. 이 포럼의 많은 개발자가 FTP 서버 폴더에서 모든 파일을 다운로드하는 방법을 묻는 것을 고려할 때, 우리 팀은 Microsoft 올인원 코드 프레임워크에서 자주 요청하는 프로그래밍 작업에 대한 코드 샘플을 만들었습니다. 코드 샘플을 다운로드할 수 있습니다. 디렉터리 구조의 무한 루프가 감지되면 ProblemDetectedEventArgs.ProblemType을 infiniteLoopDetect으로 설정하여 ProblemDetected 이벤트가 발생합니다. 이 응답은 서버에서 요청한 파일로 구성된 원시 바이트 스트림입니다. 그런 다음 이 스트림을 읽고 서버에서 요청한 파일을 가져옵니다. 이 개념은 아래에 자세히 설명되어 있습니다.

나는 당신이이 코드를 게시 한 것이 대단하다고 생각합니다. 나는 그것이 얼마나 복잡한지 놀랍습니다. C # 코딩에 대해 배울 수있는 많은 것들이 있습니다 … 마침내 순수한 C#.NET을 사용하여 FTP 서버에서 파일을 다운로드할 차례입니다. 지금까지 이 방법을 얼마나 쉽게 추측할 수 있으며, 수정할 두 소스 코드 줄은 파일 크기와 매우 유사합니다. 나는 당신의 라이브러리를 테스트했습니다 그리고 그것은 아주 좋은 작동. 파일을 다운로드 할 때 파일이 이미 존재하는 경우 덮어 쓰지 않는 것으로 나타났습니다. 다운로드 및 업로드 명령을 덮어 쓸 수있는 옵션을 추가 할 수 있습니까? (예: 클라이언트. 다운로드 (문자열 SRC, 문자열 dst, bool 덮어 쓰기). .NET이 제공하는 유일한 도움말은 FTP 서버에 있는 디렉터리에 대한 자세한 목록을 가져올 수 있다는 것입니다. 해당 목록에는 디렉터리에 포함된 모든 파일과 하위 디렉터리가 포함됩니다.

도대체, 나는 거의 실제 구성 요소로 상자 FTP 구성 요소의 아웃을 분류합니다. 가장 기본적인 작업에 대해서만 FTP에 대한 몇 가지 기술 사양을 충족합니다. 일반적으로 매개 변수 파일로 프로세스 작업 실행에서 ftp.exe를 호출하는 경로를 사용했거나 .NET 라이브러리를 사용하여 수행했습니다. 이 스레드는 .NET ftp 라이브러리에 대한 것입니다. 이 검색 결과 페이지에서 PHP lib를 검색할 수 있습니다.