문제

누군가 ftpwebrequest를 사용하여 디렉토리를 변경하는 방법을 알려줄 수 있습니까? 이것은 쉬운 일인 것 같지만 나는 그것을 보지 못합니다.

편집하다

나는 단지 추가하고 싶다 ... 나는 내 마음이 ftpwebrequest에 설정되어 있지 않다. .NET에서 FTP를 수행하는 더 나은 (더 쉬운) 방법이 있다면 알려주십시오.


분명히 라이브 연결을 사용하여 수행 할 수있는 방법이 없으므로 FTPWebRequest (JON에 감사하는)를 사용하여 FTPWebRequest를 속이려면 URI를 변경해야합니다.

그래서 저는 제 3 자 고객을 찾고 있습니다 ...

내가 시도한 오픈 소스 솔루션 중 일부는 너무 잘 작동하지 않았지만 (계속 충돌하고 있음) 예비 테스트 중 일부를 통과 한 오픈 소스 솔루션 중 하나를 발견했습니다..NET FTP 클라이언트).

도움이 되었습니까?

해결책

거기에 블로그 게시물 마리야 아타 나 소바 (Mariya Atanasova)에서 가짜가 어떻게 가짜를 할 수 있는지 보여줍니다. 기본적으로 디렉토리를 URL에 넣어야합니다.

전용 FTP 라이브러리를 사용하면 더 나을 수 있다고 생각합니다. 이를 위해 제 3 자 라이브러리를 개인적으로 사용하지는 않았지만 "FTP Library .NET"에 대한 검색은 많은 후보자를 찾습니다.


편집 : Jcolebrand (2006 년 블로그 LinkRot 가능성의 경우)

많은 고객이 FTPWebRequest와 함께 CWD 명령을 어떻게 사용할 수 있는지 묻습니다.

답은 명령을 직접 사용할 수는 없지만 URI 매개 변수를 수정하여 동일한 결과를 얻을 수 있습니다.

다음 형식을 사용하고 있다고 가정 해 봅시다.

String uri = "ftp://myFtpUserName:myFtpUserPassword@myFtpUrl";
FtpWebRequest Request = (FtpWebRequest)WebRequest.Create(uri);
Request.Method = "LIST";

위의 예는 사용자 디렉토리로 가져와 모든 내용을 나열합니다. 이제 2 개의 디렉토리를 거꾸로 가서 내용을 나열하고 싶다고 가정 해 봅시다 (사용자가이를 수행 할 권한이있는 경우). 당신은 이전의 ftpwebrequest를 닫고이 URI로 새로운 것을 발행합니다.

uri = "ftp://myFtpUserName:myFtpUserPassword@myFtpUrl/%2E%2E/%2E%2E";

이것은 사용자의 자격 증명에 로그인 한 다음 사용하는 것과 같습니다. cd ../../

참고 : 사용해 보는 경우 ”..” 그들을 탈출하지 않고 직접 URI 클래스는 그들을 제거 할 것입니다. "ftp://myFtpUserName:myFtpUserPassword@myFtpUrl/../.." 동일합니다 "ftp://myFtpUserName:myFtpUserPassword@myFtpUrl/"

이제 루트 위의 한 레벨 인 다른 사용자 디렉토리로 가고 싶다고 가정 해 봅시다. 사용자 이름과 비밀번호를 지정하지 않으면 익명 사용자로 로그인하는 것과 같습니다. 그런 다음 새로운 것을 발행합니다 FtpWebRequest 다음 URI와 함께

"ftp://myFtpUrl/%2F/anotherUserDir"

이것은 익명으로 로그인 한 다음

Cd /
cd anotherUserDirectory

다른 팁

현재 연결을 닫아야합니다.

request.Close();

다른 URI와 함께 새로운 것을 열어보세요 :

uri = "ftp://example.com/%2F/directory" //Go to a forward directory (cd directory)
uri = "ftp://example.com/%2E%2E" //Go to the previously directory (cd ../)

FtpWebRequest request = (FtpWebRequest)WebRequest.Create(uri);

ftpwebrequest의 ListDirectory 메소드를 사용하는 대신 ftpwebrequest의 ListDirectoryDetails 메소드를 사용할 수 있습니다.

그로부터 당신은 정규 표현식을 사용하여 원하는 가치를 얻을 수 있습니다. 그게 다야, 내 경우에는 나에게 잘 작동한다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top