2014-03-07 6 views
1

Java 응용 프로그램에서 XDG 디렉터리 사양을 따르려고합니다.Java 응용 프로그램에서 XDG 디렉터리 지정 사용

protected String getDefaultDataDir() { 

    String rootPath = System.getenv("XDG_DATA_HOME"); 

    if(rootPath == null) { 
     rootPath = System.getProperty("user.home")+S+".local"+S+"share"; 
    } 

    return rootPath+S+Pinocchio.PLATFORMNAME; 
} 

I는 사용자의 문서에 문서를 저장 지금 원하는

'(S가 은 System.getProperty를 포함하는 상수 ("Win32 시스템")가) : 이미 애플리케이션 데이터를 사용했다 폴더. 하지만 XDG_DOCUMENTS_DIR이라는 환경 변수가 없습니다. XDG 구성을 가진 ".config/user-dirs.dirs"파일과 해당 경로를 직접 반환하는 "xdg-user-dir DOCUMENTS"파일이 있습니다.

기본 문서 디렉토리는 사용자 로캘에 따라 다릅니다.

Java 응용 프로그램에서 구성된 Documents 디렉토리를 사용하는 가장 좋은 방법은 무엇입니까?

+0

"기본 문서 디렉토리는 사용자 로캘에 따라 다릅니다." 이 정보는 어디에 저장되어 있습니까? 즉, 현재 사용자 로케일과 각 로케일의 경로 등등. (문제가 무엇인지 정확히 이해하려고 시도하고있다.) – TheCodeArtist

+0

'xdg-user-dir'을 실행하기 위해'ProcessBuilder'를 사용해야 할까 두렵습니다. '.config/user-dirs.dirs'를 직접 파싱하십시오. –

+0

@DenisTulskiy 네 말이 맞아. 나의 첫 번째 반응은 코드에서'xdg-user-dir '을 실행하는 것이었다. 그러나 ** 현지 로케일 ** "비즈니스"가 어떻게 들어 맞는지 궁금해하고 있습니다. 따라서 자세한 내용을 기다리고 있습니다 ... – TheCodeArtist

답변

1

Gnome에는 Java-gnome 지원 라이브러리가 있습니다. gnome과의 통합 향상을 위해 기본 호출을 수행하고 있습니다. Glib.getUserSpecialDir에 대한 호출을 통해 사용자 디렉토리의 경로를 가져올 수 있습니다. 프로그램에서 더 많은 데스크탑 통합 기능을 사용하려는 경우 시도해 볼 가치가 있습니다.

0

이에 대한 대답을 찾고있는 중에 xdg-java을 찾았습니다. 나는 아직 그것을 테스트하지 않았지만 당신과 (그리고 나는) 원하는 것을 정확하게하는 것처럼 보인다.

아직 모든 사양을 구현하지는 않지만 필자가 필요로하는 기능을 구현합니다. 작성자가 패치를 잘 받아 들일 것으로 생각합니다.