2017-06-06 12 views
-1

ユーザファイルを取得するJFileChooser(ここには表示されません)があります。ユーザーが.txtファイルのみを入力するようにしたいと思います。 JFileChooserや別の解決策でこれを検証できるようにする関数がありますか?私は次のようみなさ:ユーザが特定のファイルタイプを入力することを確認する

if (selectedFile != null && selectedFile.getName().endsWith(".txt")){ 
    //action 
} else { 
    JOptionPane.showMessageDialog(null, "You have not selected a .txt file. Please choose a correct file type to continue.); 
} 

をしかし、それが可能であるならば、それは、ファイルを明示的に名前で.txtファイルで終わっていない場合でも、ケースをするために、私は希望、それはまだ受け入れられますが、まだテキストファイルでなければなりません。

答えて

0

FileFilterをJFileChooserで使用するためのJavaDocを参照してください。

ファイル名の拡張子をチェックするだけでなく、ファイルの内容がテキストであるかどうかを確認するカスタムFileFilterを実装する必要があります。 text/plainの そのディレクトリ内のファイルはテキストファイルであっても、私:ファイルが実際.TXTあなたがその

public static void main(String[] sss) { 

     try { 
     // System.out.println(ContainsMedia(new File("D:\\test"))); 

      Tika tika = new Tika(); 
      String contentTypeDetected = ""; 
      File dir = new File("D:\\test"); 
      for (String dir2 : dir.list()) { 
       try { 

        contentTypeDetected = tika.detect(new File(dir,dir2)); 
        System.out.println(contentTypeDetected); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 

     } catch (Exception e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 

出力のためのApacheティカライブラリを使用することができるファイルであるかどうかを検出する方法

1

回答、それはここからダウンロード真実 を伝えるファイルおよび.RARファイルが、Apacheのティッカを.exeファイルに名前を変更することは、彼が唯一のTXTファイルの種類を選択したい場合は瓶のリンクは第二Apache tikka homepage

をダウンロードした後、あなたのクラスパスに追加されますできます

fileChooser.setFileFilter(new FileFilter() { 

      @Override 
      public boolean accept(File f) { 
       if (f.isDirectory()) 
        return true; 
       String name = f.getName().toLowerCase(); 
       return name.endsWith(".txt") 
         ; 
      } 

      @Override 
      public String getDescription() { 
       return "only text file"; 
      } 
     }); 
0

はい可能です。
JFileChooserには、必要なものすべてが用意されています。例えば


jfc.setAcceptAllFileFilterUsed(false); 

    jfc.setFileFilter(new FileFilter() 
    { 
     @Override 
     public String getDescription() 
     { return "*" + fileExtension; } 

     @Override 
     public boolean accept(File f) 
     { 
      return f.isDirectory() || f.getName().toLowerCase().endsWith(fileExtension)); 
     } 
    }); 

(JFCは前に作成したJFileChooserのオブジェクトが、ある。)

これは本当に簡単な例です。
ご覧のとおり、問題を解決するために新しいFileFilterを追加する必要があります。
このオブジェクトは、(。それは、「有効なファイル」であるか否か)だけブール値
を返す「受け入れる」と呼ばれる方法を、持っ

しかし、あなたはすべての可能性のためにそれについてJavaドキュメントをチェックする必要があります。

またはOracleが提供するこれらのチュートリアルを使用します。ところで
http://docs.oracle.com/javase/tutorial/uiswing/components/filechooser.html

を。選択したファイルにテキストだけが含まれていることを確認することはできません。
これは後で確認する必要があります。

幸運を祈る!
(実現するのは難しくありません)

+0

ありがとうございました。 –

関連する問題