2013-01-17 3 views
4

메인 프레임의 FTP에서 로컬 시스템으로 파일을 전송하는 Java 코드가 있습니다. 문제는 주어진 경로가 파일인지 폴더인지 어떻게 알 수 있습니까? 가능한 확장 기능이 무엇인지 모르기 때문에 확장 기능 검사를 사용할 수 없습니다. 또한 다음 코드는 항상 메인 프레임 파일 시스템 인Mainframe FTP 서버의 경로가 파일인지 폴더인지 확인합니다.

fileSystem.isFile("fileName"); 

false를 반환 경로는 따라서 . 대신 / 또한 끝 나던 직장에서 . 수표로 구분된다.

는 다시 I는 I 소스 경로에 파일이있는 경우

url="connection url of the mainframe" 
bufferedInputStream = new BufferedInputStream(url.getInputStream()); 

는 그것이 대상 파일의 내용을 기록하여 출력 위치의 입력 경로에 데이터를 스트리밍 소스 경로가있을 때 디렉토리에있는 파일의 이름 및 기타 속성을 대상 디렉토리에 씁니다. 소스가 디렉토리가

샘플 출력은 내가 소스 경로가 파일 또는 폴더인지 확인하려면 어떻게해야

Name VV.MM Created  Changed   Size Init Mod Id 
QQQQ 01.00 2009/12/18 2009/12/18 12:15 18 18  0 XXXX 
RRRR 01.00 2009/12/18 2009/12/18 12:16  19  19 0 XXXXX 

입니까?

+2

실제로 이것은 정확한 질문이나 중복 된 질문이 아닐 수도 있습니다."유닉스 파일 시스템"과 "클래식 파일 시스템"의 두 가지 메인 프레임 파일 시스템이 있습니다. 전자는 "정상적인"유닉스처럼 행동한다. 후자에는 디렉토리가 없습니다. FTP 시작 작업에는 디렉토리를 바꿀 수있는 것처럼 보이는 문법적 설탕이 있지만 실제로 보거나 만들 데이터 세트의 하위 집합에 사용되는 한정자를 수정하는 것입니다. – cschneid

+2

동의. "메인 프레임"태그는 복제 문제를 차단합니다. 이는 서버가 z/OS 인 FTP를 사용하는 사람들에게 심각한 질문입니다. 나는 그것을 다시 투표하기로 결심했다. 그리고 나는이 공간을 보는 다른 모든 메인 프레임도 그것을 upvote하도록 요청한다. – zarchasmpgmr

+0

감사합니다 @cschneid 및 @ zarchasmpgmr .. – RadAl

답변

1

액세스 할 수있는 속성 파일이있을 수 있습니다). org.apache.hadoop.fs.ftp.FTPFileSystem 라이브러리를 사용했고 다음 코드 단편은 파일 목록을 반환하여 작동합니다.

FTPFile[] files = ftp.listFiles(); 

files을 통해 반복하고 file1.isFile()이 충분 검사합니다. ftp.cwd(inputPath);

메인 프레임 파일 시스템에 대한 설명은 브루스 마틴의 대답과 그에 대한 설명을 참조하십시오. 다음을 사용하여 파일을 나열하기 전에 현재 작업 디렉토리로 변경해야합니다. .

0

사용중인 java의 버전이나 호스트 파일 시스템 용 특수 라이브러리를 사용하고있는 것은 아닙니다.

대신 java.io.File#isDirectory()을 사용할 수 있습니까?

+0

Java 6을 사용하고 'java.io.File # isDirectory()'가 작동하지 않습니다 .. – RadAl

2

답변이 없지만 사용자가 Zos에 액세스하는 것처럼 들립니다. ZOS

  • ZOS에 대해 아무것도 아무것도 를 모르는 사람들을 위해 은 그가 디렉토리를 호출하는 것은 아마 인 PDS (Dataset에 PDS 참조) 디렉토리
  • 이없는 않습니다. 메인 프레임 배경이 아닌 사람들은 아카이브 형식 (예 : jar, Tar, zip 등)으로 생각하십시오. 이것은 완전히 정확한 설명이 아니며 PDS에는 몇 가지 제한이 있습니다. &은 jar 파일을 사용하지 않지만 jar 파일은 PC에서 가장 유사한 것으로 생각할 수 있습니다.

  • 어떻게 당신이 그들을 감지 않는다 - 확실하지, 당신은 내가 메인 프레임의 경로가 파일 또는 PDS (유비 디렉토리인지 여부를 확인하는 방법을 발견

+0

z/OS에 가장 확실하게 _does_ 디렉토리가 있습니다. z/OS Unix System Services를 살펴보십시오. FWIW, z/OS v1r2 이상은 Unix95 제품 표준 (http://www.opengroup.org/openbrand/register/ibm.htm)을 준수합니다. 말하자면, "전화 번호부 전화는 아마 PDS [...]"라고 말하면서 당신의 말이 맞습니다. 그리고 당신의 비유는 좋은 것입니다. – cschneid

+0

cschneid, 맞습니다. Unix System Services를 잊어 버리는 경향이 있습니다. Clasic -MVS/ZOS 구조가 ZO의 Unix 측에 매핑되는 방식을 사용하지 않아도됩니다. 또한 Clasic -MVS/ZOS라는 질문도 있습니다. 측면 문제에서 Java가 jar 파일을 사용하는 방법을 알면 항상로드 라이브러리가 메인 프레임에서 사용되는 방식을 다시 상기시킵니다. –

관련 문제