2013-05-27 2 views
1

다음 달에 내 시험용으로 작은 응용 프로그램을 개발 중입니다. 이 응용 프로그램에서 사용자는 이름과 일치하는 파일을 업로드 할 수 있습니다.파일 이름에 외국 문자가있는 파일 열기

덴마크에서는 불행히도 덴마크에는 몇 개의 외국 문자 (ÆØÅæøå)가 있으며이 코드를 포함하는 파일은 열지 않습니다.

이러한 파일 이름을 사용할 수있는 해결 방법이 있습니까?

Desktop.getDesktop().open(new File("kontrakt/" + getStuderende().getKontrakt())); 

그리고 예외 :

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: The file: kontrakt/5_Bjørnen-Bjørn-kontrakt.docx doesn't exist. 
at java.awt.Desktop.checkFileValidation(Desktop.java:209) 
at java.awt.Desktop.open(Desktop.java:270) 
at View.StuderendePanel.visKontraktBtnActionPerformed(StuderendePanel.java:382) 
at View.StuderendePanel.access$1000(StuderendePanel.java:29) 
at View.StuderendePanel$12.actionPerformed(StuderendePanel.java:284) 
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) 
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) 
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) 
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) 
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) 
at java.awt.Component.processMouseEvent(Component.java:6505) 
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) 
at java.awt.Component.processEvent(Component.java:6270) 
at java.awt.Container.processEvent(Container.java:2229) 
at java.awt.Component.dispatchEventImpl(Component.java:4861) 
at java.awt.Container.dispatchEventImpl(Container.java:2287) 
at java.awt.Component.dispatchEvent(Component.java:4687) 
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) 
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) 
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) 
at java.awt.Container.dispatchEventImpl(Container.java:2273) 
at java.awt.Window.dispatchEventImpl(Window.java:2719) 
at java.awt.Component.dispatchEvent(Component.java:4687) 
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:723) 
at java.awt.EventQueue.access$200(EventQueue.java:103) 
at java.awt.EventQueue$3.run(EventQueue.java:682) 
at java.awt.EventQueue$3.run(EventQueue.java:680) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) 
at java.awt.EventQueue$4.run(EventQueue.java:696) 
at java.awt.EventQueue$4.run(EventQueue.java:694) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 
at java.awt.EventQueue.dispatchEvent(EventQueue.java:693) 
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) 
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) 
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) 
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) 
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) 
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91) 
+0

파일 이름은 5_Bjørnen-Bjørn-kontrakt.docx입니까? – anshulkatta

+0

해당 디렉토리에 파일 내용을 나열 할 수 있습니까? – Thihara

+0

예, '5_Bjørnen-Bjørn-kontrakt.docx'는 파일이며, 현재 디렉토리의 유일한 파일입니다. A-Z 문자로만 이름을 선택하면 올바르게 작동합니다. –

답변

1

코드는 윈도우에서 일하고

이 파일을 열어 코드입니다. 그러나이 주제에서 사용 된 OSX OS는이 기능을 지원하지 않습니다.

이 작동 잘

package others; 

    import java.awt.Desktop; 
    import java.io.File; 

    public class A { 

     public static void main(String[] args) throws Exception{ 


      Desktop.getDesktop().open(new File("c://5_Bjørnen-Bjørn-kontrakt.docx")); 

     } 

    } 

의이 같은 파일로 열려는 경우

확인 getStuderende().getKontrakt() 방법에서 점점 어떤 인쇄를 해보십시오.

+1

OSX를 실행 중이고 Windows 컴퓨터에서 코드를 사용하려고했습니다. 의도 한대로 작동했습니다. OSX 용 픽스를 찾거나 문자를 교체해야 할 것 같아요. 시간 내 주셔서 감사합니다 :-) –

+0

@PatrickReck great, 그것이 효과적이었습니다.이 정보를 추가하려면 내 대답을 편집하십시오. – anshulkatta

관련 문제