파일 또는 디렉토리의 이름을 바꾸는 Java 코드가 있습니다. Linux에서 일부 특수 문자를 사용하면 문제가 발생하며 Windows에서는 이러한 특수 문자로 작동합니다. 나는 그것을 시도하는 방법은 다음과 같이이다 :Java 파일 문자 인코딩 이동/이름 바꾸기 (Linux)
I라는 direcotory을 만들창에서 는 "326½_6는"
- 내가 항아리 파일을 구축하고,에 직접 (자바 -jar)를 호출 Windows cmd (또는 Linux 쉘), 첫 번째 param은 위의 디렉토리이고 두 번째 param은 새 디렉토리의 경로입니다. 이
내가 다음 리눅스 서버 사용 SFTP (WinSCP에)에 디렉토리를 이전 작동합니다. 위의 단계를 반복하지만 작동하지 않습니다. -------
을 이름 변경을 수행 할 수 없습니다 ---이동/홈/사용자/testarea/326�_6 /에/홈/사용자/testarea/test5/
:이 출력을 얻을
어쨌든이 작업을 리눅스 컴퓨터에서 할 수 있습니까 ???
코드 :
public static void main(String [] args) {
String source = args[0];
String dest = args[1];
System.out.println(" - Moving " + source + " to " + dest);
File sourceFile = new File(source);
File destinationFile = new File(dest);
if (!sourceFile.renameTo(destinationFile)) {
System.out.println("--- could not perform rename -------");
}
System.out.println("Finished moving");
}
감사합니다!
그게 효과가! 감사! – Jojje
SFTP를 통해 전송할 때 항상 "en_US.iso8859_1"로 인코딩됩니까? – Jojje
SFTP는 전송할 때 인코딩을 변경하지 않기 때문에 Windows에서 사용되는 인코딩 (아마도 Windows-1252)을 사용하여 파일 이름이 만들어집니다. 바이트 0x80-0x9f를 제외하고는 iso-8859-1과 동일합니다. – Joni