package kr.or.ddit.basic;
import java.awt.Panel;
import java.io.File;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileNameExtensionFilter;
public class DialogTest {
public static void main(String[] args) {
JFileChooser chooser = new JFileChooser();
chooser.setAcceptAllFileFilterUsed(true);
chooser.setCurrentDirectory(new File("d:/d_other"));
FileNameExtensionFilter txt =
new FileNameExtensionFilter("텍스트문서(*.txt)", "txt");
FileNameExtensionFilter img =
new FileNameExtensionFilter("이미지 파일", "png", "jpg", "gif");
FileNameExtensionFilter doc =
new FileNameExtensionFilter("MS Word 문서", new String[] {"doc", "docx"});
FileNameExtensionFilter pdf =
new FileNameExtensionFilter("PDF 문서", "pdf");
chooser.addChoosableFileFilter(txt);
chooser.addChoosableFileFilter(img);
chooser.addChoosableFileFilter(doc);
chooser.addChoosableFileFilter(pdf);
chooser.setFileFilter(doc);
int result = chooser.showSaveDialog(new Panel());
if(result == JFileChooser.APPROVE_OPTION) {
File selectFile = chooser.getSelectedFile();
System.out.println("선택한 파일: " + selectFile.getAbsolutePath());
}
}
}
package kr.or.ddit.basic;
import java.awt.Panel;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileNameExtensionFilter;
public class FileCopyDialog {
public static void main(String[] args) {
FileCopyDialog copy = new FileCopyDialog();
File file = copy.showDialog("OPEN");
File targetFile = copy.showDialog("SAVE");
if(file == null || targetFile == null) {
System.out.println("원본 파일이나 대상 파일을 지정하지 않았습니다.");
System.out.println("복사 작업을 중지합니다.");
return;
}
if(!file.exists()) {
System.out.println(file.getPath() + " 파일이 없습니다.");
System.out.println("복사 작업을 중지합니다.");
return;
}
try {
FileInputStream fin = new FileInputStream(file);
BufferedInputStream bin = new BufferedInputStream(fin);
FileOutputStream fout = new FileOutputStream(targetFile);
BufferedOutputStream bout = new BufferedOutputStream(fout);
System.out.println("복사 시작..");
int data;
while((data = bin.read()) != -1) {
bout.write(data);
}
bout.flush();
bin.close();
bout.close();
System.out.println("복사 작업 완료!!");
} catch (IOException e) {}
}
public File showDialog(String option) {
JFileChooser chooser = new JFileChooser();
chooser.setAcceptAllFileFilterUsed(true);
chooser.setCurrentDirectory(new File("d:/d_other"));
FileNameExtensionFilter txt = new FileNameExtensionFilter("텍스트문서(*.txt)", "txt");
FileNameExtensionFilter img = new FileNameExtensionFilter("이미지 파일", "png", "jpg", "gif");
FileNameExtensionFilter doc = new FileNameExtensionFilter("MS Word 문서", new String[] { "doc", "docx" });
FileNameExtensionFilter pdf = new FileNameExtensionFilter("PDF 문서", "pdf");
chooser.addChoosableFileFilter(txt);
chooser.addChoosableFileFilter(img);
chooser.addChoosableFileFilter(doc);
chooser.addChoosableFileFilter(pdf);
int result;
if("SAVE".equals(option.toUpperCase())) {
result = chooser.showSaveDialog(new Panel());
} else if("OPEN".equals(option.toUpperCase())) {
result = chooser.showOpenDialog(new Panel());
} else {
System.out.println("option은 SAVE 또는 OPEN만 가능합니다.");
return null;
}
File selectFile = null;
if (result == JFileChooser.APPROVE_OPTION) {
selectFile = chooser.getSelectedFile();
}
return selectFile;
}
}