2012-10-19 3 views
0

자바와 "LS -la"정보를 얻을 수나는 자바와 같은 출력을 얻을 수 있는지 궁금 해서요

가능 내가 있어요, 그래서 만약, 리눅스, 윈도우 및 Mac에서 작동하는

http://blog.dbugs.org/wp-content/uploads/2007/03/ls_la.jpg

Runtime.exec()를 사용하지 않기를 바란다

+2

Linux, Windows 및 Mac에서는 방법이 다릅니다. –

+0

JNI 작성에 괜찮습니까? Runtime.exec를 호출하는 것보다 3 가지 (적어도) 플랫폼을위한 JNI를 만드는 것이 훨씬 더 많은 부채처럼 보입니다. ... –

+2

Java로 사용자의 프로그램을 작성하고, 원하는대로 출력을 표시하는 이식 가능한 코드 만 사용하십시오. . 새 java.nio.file 패키지를 사용하면 쉽게 할 수 있습니다. –

답변

0

나는 당신이 필요한 것을 얻기 위해 File 객체의 메타 데이터를 사용할 수 있다고 생각한다.

http://docs.oracle.com/javase/tutorial/essential/io/fileAttr.html

예 :

Path file = ...; 
BasicFileAttributes attr = Files.readAttributes(file, BasicFileAttributes.class); 

System.out.println("creationTime: " + attr.creationTime()); 
System.out.println("lastAccessTime: " + attr.lastAccessTime()); 
System.out.println("lastModifiedTime: " + attr.lastModifiedTime()); 

(이 예는 내가 제공된 링크에서 찍은)은 다음 링크를 확인하십시오.

희망이 당신이 필요로하는 데이터 (크기, 등 특성) File 클래스의 방법을 통해 accesible 것을 알아, 당신에게


자바 API를 확인하는 데 도움이됩니다. 확인 : http://docs.oracle.com/javase/7/docs/api/java/io/File.html

linux와 mac는 모두 유닉스 계열 시스템이며 Windows는 그렇지 않습니다. 따라서 Windows의 linux 또는 mac에서 얻을 수있는 모든 파일 속성을 가져올 수는 없지만 가장 중요한 값을 얻을 수 있습니다.

+0

감사합니다.하지만 파일 사용 권한, 소유자, 사용자, 그룹을 얻는 방법은 무엇입니까? – BackSlash

+0

@Harlandraka는 내가 제공 한 링크를 확인합니다. "POSIX 파일 권한"이라는 제목의 절이 있습니다. 하지만 당신은 윈도우가 POSIX가 아니라는 것을 알고 있어야합니다 – Barranka

+0

감사합니다. 이것은 도움이되었습니다. 이제는 또 다른 질문이 있습니다. ls -la와 비슷한 결과를 얻으려면 어떻게해야합니까? ie -rw ------- – BackSlash

1

아니요, 출력 할 수 없으므로 당신은 * nix-only 속성 "소유자"와 "그룹", 윈도우 플랫폼에 존재하지 않습니다. Java File에는이 정보가 없으므로 사용하지 않고 파일 정보를 얻는 유일한 방법 일 것입니다. Runtime.exec()

+1

잘 예를 들어 있습니다. FileZilla Server는 Windows에서만 작동하며 파일 사용 권한을 얻기 위해 Linux를 에뮬레이션합니다. JNI 또는 어쩌면 그렇게 할 수있는 방법이 있어야합니다.하지만 그렇게 할 수있는 방법이 있어야합니다. 제안 사항이 있습니까? – BackSlash

+0

또한 MSYS는 ... – BackSlash

+0

당신은'Runtime.exec()'를 사용하고 싶지 않다면 그것을 얻을 수 없습니다. 그것이 나 였다면 시스템 유형을 감지하고 Runtime.exec()를 통해 플랫폼에 적절한 명령을 실행하고 출력에서 ​​필요한 것을 얻으십시오 – Bohemian

관련 문제