0
파일을 열고 모든 파일 내용을 JTextArea에로드하는 프로그램을 작성하고 있습니다. 사용자가 다른 파일 형식을 열 수 없도록 제한하고 싶습니다. 동의하려는 형식은 다음과 같습니다. .js .php .html .asmx .htm .css 기본적으로 웹 브라우저에서 읽을 수있는 모든 형식입니다.파일 확장명을 정규식으로 검사합니다.
가장 좋은 방법은 무엇입니까?
정규식을 사용하여 파일 이름이 내 기준과 일치하는지 또는 더 간단한 해결 방법을 사용해야합니까?
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
}
어떤 제안 : 여기
내가 생각했던 어떤 종류입니까?
아니, 난가 없습니다 :이 작업을 수행하는 가장 적절한 방법합니다 (FileNameExtensionFilter API에서)를
FileNameExtensionFilter
예 것이다. 이러한 확장 유형에 대한 파일 이름을 확인하는 가장 효율적인 방법을 찾고 있습니다. 확장 필터를 사용할 수 있는지 몰랐는데 사전에 감사해야 할 것입니다. –
@ inner_class7 classic [XY 문제] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) :). 어쨌든 올바른/선호하는 접근 방식입니다. – Pshemo
한 번 더 빠른 질문이 있으십니까? 이 기능을 사용하면 다중 레벨 또는 다중 확장 필터를 만들 수 있습니까? 아니면 파일 이름을 확인하려고 할 때마다 여러 개의 필터를 만들어야합니까? –