2013-01-06 3 views
2

이 게시물은 내가 며칠 전에 작성한 또 다른 문의 2 게시물 중 일부입니다. 그런 다음이 코드를 사용하여 마지막에 넣을 것이고 JButton1을 통해 파일을 첨부하여 북쪽과 동쪽의 응용 프로그램에 표시 할 수있었습니다. 내가 가져 지금 노력하고 있어요 : C로 예를 들어, 특정 디렉토리에Java GUI 빌더 - 표준 디렉토리에 JFileChooser로 디렉토리와 주어진 디렉토리로 이미지 가져 오기

1) 새 이미지를 : \ 출력

2) 전체 디렉토리 (폴더) 이미지, C에서 말할 수 있습니다 : \ importImages

을 C : \ output에 입력하십시오.

이 경우 나는 C : \ importImages 디렉토리에 이미지가 있다고 가정합니다. 아래는 이러한 작업을 수행하기 위해 필 요한 2 가지 코드 샘플입니다. 디렉터리를로드하는 첫 번째 방법이 실행되지 않습니다. 아마도 GUI Builder에서 Filechooser 버튼을 사용하여 무언가를해야한다고 생각합니다.

전체 디렉터리를로드하는 전체 방법입니다.

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { 
     // TODO add your handling code here:(for importing a whole directory(folder) from C:\importImages into C:\output). 
JFileChooser chooser = new JFileChooser(); 
     chooser = new JFileChooser(); 

     File f = chooser.getSelectedFile(); 

     String filename = f.getAbsolutePath(); 
    try { 
     ImageIcon ii=new ImageIcon(scaleImage(250, 250, ImageIO.read(new File(filename))));//get the image from file chooser (directories) 
     //jLabel1.setIcon(ii); 

     File srcDir = new File(filename); 
     File destDir = new File("C:/output/"); 
     FileUtils.copyDirectoryToDirectory(srcDir, destDir); 

    } 
     catch (Exception ex) { 
     ex.printStackTrace(); 
    } 
    } 

및 하나의 파일을 가져 오는 방법.

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) { 
     // TODO add your handling code here(for importing a single image to directory C:\output). 
-- 
    } 

미리 감사드립니다.

+0

이 방법으로 질문을 변경하지 마십시오. 방문객은 원본 정보 중 답이 무엇인지 알 수 없습니다. "질문"을 다시 원래 상태로 변경하십시오. 그리고 새로운 질문을 게시하십시오. –

+0

1.) scaleImage() 함수에 디렉토리를 전달할 수 없다. 디렉토리의 크기를 조절할 수 없다. 'chooser.setFileSelectionMode (JFileChooser.DIRECTORIES_ONLY);'그래서 당신의 코드는 다음 오류를 일으키지 않을 것입니다. 2.) 파일을 가리 키도록 JFileChooser를 변경 한 경우. 'File srcDir = new File (filename);'당신이 원하는 것이 아닙니다! filename에는 C : /choosenDir/myImageFile.jpg와 같은 전체 경로가 포함되어 있으므로 "copyDirectoryToDirectory"함수에서 허용되지 않습니다. if (srcDir.exists() && srcDir.isDirectory() == false) {throw new IllegalArgumentException ("Source ' ""' '는 디렉토리가 아닙니다.) " –

+0

당신은 모스키토입니다. 내가 디렉토리에 대해서만 조금 다른 질문을 게시 할 것입니다. 질문을 정상 상태로 되돌 렸습니다. 내가 할 수 있다면 내가 할 수있는 질문을 anwser하시기 바랍니다. 이걸 도와 줘서 고마워. –

답변

0

뭔가를 배우는 가장 좋은 방법은 직접 시도해보십시오.
가능성을 보여 드릴 수 있습니다. 코드에 삽입 할 때 유용한 이러한 방법을 시도해보십시오.

질문 : 가져올 지금 노력하고 A :

  • 1) 특정 디렉토리에 새 이미지, C로 예를 들면 : \ 출력

답변 :

파일을 한 위치에서 다른 위치로 복사하는 직접적인 방법이 없다는 점을 감안할 때 Java에서 파일을 한 디렉토리에서 다른 디렉토리로 복사하는 것이 일반적인 요구 사항입니다.

파일을 복사하는 한 가지 방법은 FileInputStream에서 읽고 FileOutputStream에 동일한 데이터를 다른 디렉토리에 쓰는 것입니다.

다행히도 여기 바퀴를 다시 만들 필요가 없습니다. Java에서 파일을 한 디렉토리에서 다른 디렉토리로 쉽게 복사 할 수있는 오픈 소스 라이브러리가 있습니다. 그러한 라이브러리 중 하나는 파일 관련 작업을위한 유틸리티 메소드를 제공하는 FileUtils이라는 클래스를 포함하는 Apache commons IO입니다.

Copy and rename file on different location

FileUtils.copyFile

Fileutils의.내가 가져 지금 노력하고 : CopyFile 수 (SourceFile을,는 targetfile)이

사용할 수 있습니다
String source = "C:/output/myImage.jpg"; 
    //directory where file will be copied 
    String target ="C:/importImages/"; 

    //name of source file 
    File sourceFile = new File(source); 
    String Filename = sourceFile.getName(); 

    File targetFile = new File(target+Filename); 

    //copy file from one location to other 
    FileUtils.copyFile(sourceFile, targetFile); 

질문 이미지의)

  • 2) 전체 디렉토리 (폴더를 C에서 말할 수 : \ importImages 을 C : \로 변환하십시오.

답변 :

자바로 디렉토리 반복을 달성하기 위해 현재 표준 방법은 무엇입니까?

Best way to iterate through a directory in java?

코드에서 다음과 같은 방법을 추가합니다. 그게 어렵지 않아. 소스 또는 목적지가 null의 경우가

  • IOException이이 - - 소스 또는 목적지 인 경우 파일 확장자에 대한

    • 테스트 (.JPG .gif 참고 ...)
    • NullPointerException이 잡으려고 잊지 마세요 무효
    • IOException - 복사 중에 입출력 에러가 발생했을 경우
  • +0

    큰 도움을 주신 moskito! 하지만 내가 겪고있는 몇 가지 문제가 있으며,이를 반영하기 위해 게시물을 편집했습니다! –