따라서 실제로 파일을 다운로드하기 전에 먼저 서버에 파일의 큰 정도를 물어보고 나중에 다운로드 비율을 추적 할 수 있습니다. 이 시간을 수정할 두 C# 줄은 다음과 같습니다: 서버 별 디렉터리 목록 형식을 구문 분석하는 문제를 피하려면 MLSD 명령을 지원하는 제3자 라이브러리를 사용하거나 다양한 LIST 목록 형식을 구문 분석합니다. 및 재귀 다운로드. 다운로드 C # 루틴은 매우 간단한 개념이지만 소스 코드는 진행률 표시 줄 루틴으로 인해 약간 무겁습니다. 따라서이 페이지의 하단에 다운로드 할 수있는 프로젝트 파일에 대한 실제 소스 코드를 저장합니다. 그러나 여기에 주요 개념이 있습니다. FtpWebRequest는 재귀 파일 작업(다운로드 포함)에 대한 명시적인 지원이 없습니다. 재귀는 직접 구현해야 합니다: 까다로운 부분은 하위 디렉토리에서 파일을 식별하는 것입니다. FtpWebRequest를 사용하여 이식 가능한 방법으로 이 작업을 수행할 수 있는 방법은 없습니다. FtpWebRequest 는 불행히도 FTP 프로토콜의 파일 특성이있는 디렉터리 목록을 검색 할 수있는 유일한 이식 가능한 방법입니다 MLSD 명령을 지원하지 않습니다. FTP 서버의 개체가 파일 또는 디렉터리인지 확인을 참조하십시오.
이 포럼의 많은 개발자가 FTP 서버 폴더에서 모든 파일을 다운로드하는 방법을 묻는 것을 고려할 때, 우리 팀은 Microsoft 올인원 코드 프레임워크에서 자주 요청하는 프로그래밍 작업에 대한 코드 샘플을 만들었습니다. 코드 샘플을 다운로드 할 수 있습니다 : 나는 FTP 폴더의 내용을 다운로드 할 수있는 클래스에서 두 가지 방법을 만들었습니다. 코드는 의도 한대로 작동하지만 나는 그것이 크게 부풀어 있다고 생각하고 그것을 수정하는 방법에 대한 방향을 찾고 있습니다. 내 목표를 향한 첫 번째 단계는 FTP 서버에서 모든 파일, 하위 디렉토리 및 하위 파일을 다운로드하는 것이었습니다. 아래 코드와 함께 디렉토리에서 모든 파일을 다운로드 할 수있었습니다. 그러나 내 코드는 폴더 이름과 기본 디렉토리의 파일만 나열합니다. 하위 폴더 및 하위 파일은 반환되지 않으며 다운로드되지 않습니다. 그 외에도 서버는 폴더를 파일처럼 다운로드하려고하기 때문에 550 오류를 반환합니다. 나는 지금 4 + 시간 동안이것에 있었지만, 이러한 문제를 해결하고 작동하게하는 방법에 대해 아무것도 찾을 수 없습니다.
그래서 나는 너희들이 나를 도울 수 있기를 바란다:) 우리 팀은 MSDN 포럼, 소셜 미디어 및 다양한 개발자 커뮤니티에서 개발자의 고통을 경청합니다. 개발자가 자주 요청하는 프로그래밍 작업을 기반으로 코드 샘플을 작성하고 개발자가 짧은 코드 샘플 게시 주기로 다운로드할 수 있도록 합니다. 또한, 우리 팀은 무료 코드 샘플 요청 서비스를 제공합니다. 이 서비스는 개발자 커뮤니티에서 Microsoft에서 직접 특정 프로그래밍 작업에 대한 코드 샘플을 얻을 수 있는 사전 예방적 방법입니다. 나는 예를 들어 WinSCP .NET 어셈블리와 함께 ftp 서버에서 다운로드 text.txt에서 A.txt를 사용하여 사용하고 싶습니다 당신은 세션.GetFiles에 대한 단일 호출로 전체 디렉토리를 다운로드 할 수 있습니다 System.Net .