2012-10-11 8 views
0

Java 응용 프로그램이 jar 파일로 암호화되어 있습니다. JFileChooser를 사용하여 루트 경로를 얻었습니다.이 파일은 루트 경로에있는 2 개의 디렉토리에 디렉토리가 들어 있습니다. 이 디렉토리 안에는 암호화 될 파일이 있으며이 중 하나 또는 여러 디렉토리는 월 (예 : path/january 또는 path/May)입니다. JFileChooser는 Rooh 경로 디렉토리 만 탐색합니다. 월 디렉토리의 이름은 응용 프로그램 코드에 있습니다. 12 monhts가 있는데, 달의 첫 단어는 대문자로 시작하지만, 소문자로 디렉토리 이름이있는 경우 appplication은 그렇지 않습니다. 경로를 인식, 리눅스 OS 용, Windows에서 완벽하게 작동합니다. 어떤 제안?Java 용 Linux에서 올바르게 경로 파일 가져 오기

+0

* "어떤 제안?"* 프로그램이 실제 이름과 같은 문자이지만 대소 문자가 다른 파일 이름을 다루지 않아도되는지 확인하십시오. 나는이 문제 (잘못된 케이스 파일 이름)를 어디에서 얻고 있는지 잘 모르겠다. –

+0

나는 리눅스에서 올바른 올바른 경로로 테스트하고 완벽하게 작동합니다. Windows에서 디렉토리의 이름은 소문자 또는 대문자인지에 상관없이 작동합니다. Linux에서는 정확히 동일한 문자 여야합니다. –

+0

예, 대부분의 파일 시스템은 대소 문자를 구분합니다. Windows가 아닙니다. –

답변

0

내가 알아서 할 수있는 한 최선을 다하면 equalsIgnoreCase을 사용하면됩니다. 귀하의 발췌 문장을 기반으로 한 거친 유사 코드가 있습니다.

// ... 
final String FEBRERO ="Febrero"; 
// ... 

if(actualDirectorio.isDirectory()){ 
    ficheros = actualDirectorio.listFiles(); 
    for (File file : ficheros) { 
     if (file.isDirectory()) { 
      // proceed to check if it is one of the month names 
      // .. 
      if (file.getName().equalsIgnoreCase(FEBRERO)) { 
       // process Files in Febrero OR FEBRERO or febrero OR FeBrErO .. 
      } else if .. 
     } 
    } 
} 

listFiles()의 오버로드 변형에서 사용할 수있는 FileFilter 내에서 한 달을 대표로 디렉토리를 수용하기위한 조건을 캡슐화하는 것이 좋습니다 것입니다. 배터리는 포함되어 있지 않습니다.

관련 문제