2012-05-09 2 views
3

Apache (commons-net)에서 제공하는 FTP 라이브러리를 사용하고 있습니다.Java에서 원격 경로 연결

ftpClient.listFiles(remoteFileDir + "\\" + fileName); 

현재 디렉토리가 FTP 서버 루트 디렉토리입니다 : 내가 FTPClientlistFiles 방법을 사용 그래서 나는 파일이 FTP 서버에 존재하는지 확인합니다. 따라서 remoteFileDir 값은이 루트 디렉토리에 상대적인 경로입니다.

제 질문은 원격 디렉토리 경로와 파일 이름 사이의 병합에 관한 것입니다. 그것을하는 올바른 방법은 무엇입니까?

File file = new File(remoteFileDir,fileName); 

을하지만 file.getAbsolutePath()를 호출 할 때, 내가 원하는 것이 아니다 로컬 현재 디렉토리에있는 파일의 절대 경로를 얻을 수 있기 때문에 여기에 작동하지 않습니다 : 로컬 파일, 나는 할 것이다. 또한 병합은 내 지역 환경에 따라 수행되었습니다.

추신 : 나는 How are paths determined on a remote machines?을 보았지만 그다지 도움이되지 않습니다.

감사합니다.

+0

정확히 어떤 문제를 해결하려고합니까? File 객체를 사용하여 로컬 파일 이외의 것을 나타내는 것은 분명히 아니오입니다. 그러나 \\ 또는 changeWorkDir 메소드가 작동한다면 - 왜 귀찮을까요? – LordDoskias

+0

@LordDoskias 필자의 경우 \\를 사용하면 다른 FTP 서버는 어떨까요? 여전히 작동할까요? changeWorkingDirectory 메서드에 관해서는 방금 발견했지만 다른 개발자의 의견을 듣고 싶습니다. 지금은 볼 수없는 문제가있을 수 있습니다. –

+3

"/"단일 슬래시를 사용하는 것이 좋습니다. – LordDoskias

답변

1

FTPClient의 changeWorkingDirectory 메소드를 찾았습니다.

ftpClient.changeWorkingDirectory(remoteFileDir); 
FTPFile[] names = ftpClient.listFiles(fileName); 

이 경우 구분 기호를 지정할 필요가 없습니다.