2

この投稿は、数日前に行った別の問い合わせのパート 2 投稿です。次に、このコードを最後に挿入し、JButton1 を使用して、ファイルを添付し、アプリケーションの北と東のウィンドウに表示することができました。私は今インポートしようとしています:

1) 新しいイメージを特定のディレクトリ (C:\output など) にコピーします。

2)画像のディレクトリ(フォルダ)全体、C:\ importImagesから言ってみましょう

C:\output に。

このために、C:\importImages ディレクトリにいくつかの画像があると仮定します。以下は、この作業を行うために入力する必要がある 2 つのコード サンプルです。ディレクトリをロードしようとするこの最初の方法は、実行に失敗します。GUIビルダーの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 ).
--
    }

前もって感謝します!

4

1 に答える 1

0

何かを学ぶ最良の方法は、自分で試してみることです。
私はあなたに可能性を示すことができます。コードに挿入するのに役立つこれらの方法を試してください。

質問: 私は今インポートしようとしています:

  • 1) 新しいイメージを特定のディレクトリ (C:\output など) にコピーします。

答え:

Java でファイルをあるディレクトリから別のディレクトリにコピーする方法は、一般的な要件です。File API にはファイルをある場所から別の場所にコピーするための直接的な方法がないためです。

ファイルをコピーする 1 つの方法は、FileInputStream から読み取り、同じデータを別のディレクトリの FileOutputStream に書き込むことです。

ありがたいことに、ここで車輪を再発明する必要はありません.Javaでファイルをあるディレクトリから別のディレクトリに簡単にコピーできるオープンソースライブラリがいくつかあります. そのようなライブラリの 1 つにApache commons IOがあります。これにはFileUtilsというクラスが含まれており、ファイル関連の操作にユーティリティ メソッドを提供します。

別の場所にファイルをコピーして名前を変更する

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:\output に。

答え:

javaでディレクトリの反復を達成するための最近の標準的な方法は何ですか?

javaでディレクトリを反復処理する最良の方法は?

これらの方法をコードに追加します。そんなに大変じゃないですか。

  • ファイル拡張子のテスト (.jpg .gif ...)
  • キャッチすることを忘れないでください
  • NullPointerException - source または destination が null の場合
  • IOException - ソースまたは宛先が無効な場合
  • IOException - コピー中に IO エラーが発生した場合
于 2013-01-06T22:18:26.483 に答える