0

ファイルを開き、すべてのファイルの内容を JTextArea にロードするプログラムを作成しています。ユーザーがさまざまなファイル形式を開くことができないように制限したいと考えています。私が受け入れたいフォーマットは次のとおりです。

これを行う最善の方法は何ですか?

ファイルの名前が基準に一致するかどうかを確認するために正規表現を使用する必要がありますか、それとももっと簡単な解決策がありますか?

ここに私が念頭に置いていたようなものがあります:

String fileExtensions = "(.js|.php|.html|.asmx|.htm|.css)$"; // $ end of line regex
JFileChooser fileChooser = new JFileChooser();
int returnValue = fileChooser.showOpenDialog(null);

if (returnValue == JFileChooser.APPROVE_OPTION) {
    File file = fileChooser.getSelectedFile();
    String fileName = file.toString();
    Pattern pattern = Pattern.compile(fileExtensions);
    Matcher matcher = pattern.matcher(fileName);
    if (matcher.find()) {
        openAndReadFile(); // opens the file and outputs contents
    } else {
        // prompt the user to open a different file
    }
} else {
    // do nothing because cancel was pressed
}

助言がありますか?

4

1 に答える 1

3

正規表現を使用する必要がありますか? これを行う最も適切な方法は、FileNameExtensionFilter

例 ( FileNameExtensionFilter APIから):

FileFilter filter = new FileNameExtensionFilter("JPEG file", "jpg", "jpeg");
JFileChooser fileChooser = ...;
fileChooser.addChoosableFileFilter(filter);
于 2013-05-17T14:41:09.573 に答える