이유:
일부 비디오 자습서는 온라인으로 다운로드되므로 일부 이름은 매우 긴 이름을 가지고 있으며 일반적으로 기관이나 웹 사이트에서 홍보되므로 비디오의 소개를 직접 보는 것이 편리하지 않으므로 다음 첫 번째 기능이 만들어졌습니다.
교사는 코스웨어에서 너무 많은 폴더를 보냈기 때문에 하나씩 찾기에는 너무 번거 롭기 때문에 두 번째 기능이 만들어졌습니다.
방금 Java 파일에 대한 지식과 최근 스트리밍에 대한 지식을 배웠으므로 방금 내 기술을 연습했습니다. 이것은 또한 첫 번째 EXE 프로그램이므로 공유 할 수 있습니다.
(JAR 파일을 내보내고 EXE4J 도구를 사용하여 EXE 파일을 생성하면이 부분이 생략됩니다)
사용 된 지식 :
Java에서 파일, 스트림 및 간단한 GUI 지식에 대한 지식을 사용합니다.
기능:
함수 1 : 파일 이름에서 특정 키워드를 제거하면 대체 단어를 설정할 수도 있습니다.
기능 2 : 경로 아래에서 특정 유형의 모든 파일을 추출하여 새 폴더 아래에 배치하십시오. 중복 파일이있는 경우 파일을 자동으로 정렬하고 추가하여 숫자를 추가합니다.
먼저 시작 인터페이스와 생성 된 EXE 파일을 살펴보십시오.
첫 번째 기능 데모 :
전에 작동 없음 :
작동 후 : 이전 부분에서 동일한 키워드를 모두 제거합니다.
철수 기능도 있습니다.
두 번째 기능 데모 :
작동 전 :
작동 후 :
물론 철수 기능도 있습니다
소스 코드 분석 :
스타트 업 수업 :
패키지 Guuze; Public Class Test {public static void main (String [] args) {// GUI를 시작합니다. 즉, 사용자 인터페이스 New ShowGui ();}}GUI 클래스 표시 :
Package Guuze; import java.awt.dimension; import java.awt.flowlayout; import java.awt.font; import java.awt.image; import java.awt.toolkit; import java.awt.event.mouseadapter; import java.awt.event.mouseevent; java. java.awt.event.windowevent; import java.io.file; import javax.swing.jbutton; import javax.swing.jframe; import javax.swing.jtextfield; public jbutton b1; private jbutton b2; private jbutton b3; jtextfield Tf1; tf2; private jtextfield tf3; private jbutton b4; private jbutton b5; private jbutton b6; private jtextfield tf4; private jtextfield tf5; private jtextfield tf6; private jtextfield tf6; private static string s1; public showgui () {// call startgui () 직접 public void startgui () {f = new bgset (); f.setLayout (new flowLayout ()); image icon = toolkit.getDefaultToolKit (). getImage ( "image/4.jpg"); // 왼쪽 상단 로고 아이콘을 설정합니다. B2 = New Jbutton ( "철회"); B3 = New Jbutton ( "Exit"); B4 = New JButton ( "원 클릭 추출"); B5 = New JButton ( "Exit"); B6 = New JButton ( "Exit"); // 6 개의 크기 B1.SetPreferredsize (New Dimension (89, 39)); B2. 세트 프리 크기 (New Dimension (89). 39)); B3. SETPREFERREDSIZE (New Dimension (89, 39)); B4. SETPREFERREDSIZE (New Dimension (89, 39)); B5.SetPreferRedSize (New Dimension (89, 39)); B6. SETPREFERREDSIZE (New Dimension (89, 39)); = New Jtextfield ( "Please Intput Absolute_Path", 40); TF1.SetFont (새 글꼴 ( "Please Intput Absolute_Path", 40); TF1.SetFont (새 글꼴 ( "Please Intput", Font.Plain, 25)); TF1.SetBounds (200, 15, 550, 126); 40); tf2.setfont (새 글꼴 ( "Please Input Keywords", font.plain, 25)); tf2.setbounds (200, 15, 550, 126); tf3 = new Jtextfield ( "Please Intput ReplaceWords", 40); tf3.setfont ( "Zongyi", font.plain, 25)); 550, 126). Target_Path ", 40); tf5.setfont (새 글꼴 ("Please Intput ", font.plain, 25)); tf5.setbounds (200, 15, 550, 126); tf6 = New JtextField ("Please Intput Filetype ", 40); tf6.setfont ("Please Intput ", font.plain, 25)); 550, 126); // 버튼과 텍스트 상자를 추가하십시오 f.add (tf1); f.add (tf2); f.add (tf3); f.add (b1); f.add (b2); f.add (b3); f.add (tf4); f.add (tf5); f.add (tf6); f.add (b4); f.add (b.); 이벤트 청취 함수 myevent (); f.setvisible (true);} private void myevent () {// 오른쪽 상단 코너를 클릭하여 f.addwindowlistener (새 창자 aadapter () {public void windowclosing (schooling e) {System.exit (0);}); void mouseclicked (mouseevent e) {s1 = tf1.getText (); // 텍스트 상자의 값에 대한 판단을합니다. 아무것도 쓰지 않으면 비어있는 것으로 취급됩니다. 다음은 if (s1.equals ( "please input path")) {s1 = "" ";} 파일 파일 = 새 파일 = 새 파일 (s1); 문자열 테스트 []; test = file.list (); RenameFunction.Test1 = Test; String S2 = tf2.getText ("Please Intpectals ( "입력 replacords") {S2 = " tf3.getText (); if (s3.equals ( "Please intup replaceWords")) {s3 = "";} try {// renamefunction.sure (s1, s2, s3);} catch (예외 e1) {}}}); // 응답 이벤트 (Addmouselistens) (new mouseadapter)를 클릭하십시오. mouseclicked (mouseevent e) {try {try {if (! s1.equals ( "please input path")) {// revokerename.revoke (s1);}} catch (예외 e2) {}} catch (Exception e1) {}}}); // 응답 이벤트를 클릭하십시오. mouseclicked (mouseevent e) {system.exit (0); // 응답 이벤트를 클릭하십시오. addMousEdapter () {public void mouseclicked (mouseevent e) {string s2 = tf4.getText (); String s3 = tf6. (s2.equals ( "Please in Absolute_Path")) {s2 = "";} if (s3.equals ( "please target_path")) {s3 = "";} if (s4.equals ( "please input filetype")) {s4 = "";} // 파일 검색 기능 검색 filefunction.startcopy (s2, s3, s3, s3, S4);}}); // 응답 이벤트 b5.addmouseListener (new MouseAdapter () {public void mouseclicked (mouseevent e) {string s2 = tf5.getText (); // repletargetfile.startDelete (s2); // 클릭 이벤트 b6.addmouselist (}}); MouseAdapter () {public void mouseclicked (mouseevent e) {system.exit (0); // 출구}});}} GUI 배경 이미지 설정 클래스 :
Package Guuze; import javax.swing.imageicon; import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.jpanel; public class bgset {private static final long serialversionuid = 1l; public bgset () {// set title super (100, setbound); 600); // 배경 이미지로가는 경로. 문자열 path = "image/3.jpg"; imageicon background = new imageicon (path); jlabel label = new Jlabel (배경); label.setbounds (0, 0, this.getWidth (), this.getheight ()); jpanel imagePanel = (jpanel) this.getContentPane (); imagePanel.setOpaque (false); this.getLayeredPane (). add (레이블, 새 정수 (integer.min_value));}} 파일 이름 바꾸기 클래스 :
패키지 Guuze; import java.io.file; import java.util.scanner; public class renamefunction {static scanner input = new Scanner (System.In); public static string test1 []; public static void sure (문자열 s1, 문자열 s3) 예외 {파일 파일 = 새 파일 (s1); test = test = file. (test =); (int i = 0; i <test.length; i ++) {// if (test [i] .indexof (s2)! = -1) {// 이름이 변경된 파일 이름 테스트 [i] = 테스트 [i] .replace (s2, s3);}} 파일 [] file = {); int. (파일 F : 파일) {if (f.isfile ()) {// 이름 바꾸기 이름 F.Renameto (새 파일 (s1 + "/" + test [i ++]));}}}}}. 파일 이름 바꾸기 및 인출 기능 클래스 :
패키지 Guuze; import java.io.file; public class revokerename {public static void Revoke (string s1)는 예외를 던졌습니다. {// 원래 이름 파일 = 새 파일 (s1); 파일 [] file = file.listfiles (); for (for (forf) {file) {fof. {// test1f.renameto (새 파일 (s1 + "/" + enamefunction.test1 [i ++]);}}}}} 참고 파일 복사 클래스 :
패키지 Guuze; import java.io.bufferedInputStream; import java.io.bufferedoutputStream; import java.io.file; import java.io.fileInputStream; import java.io.fileoutputStream; import java.io.io.ioexception; public intatic intatic intatic intation h, 11; String target_path, String file_type) {// 루프 함수 시작 xunhuan (source_path, target_path, file_type);} public static void XUNHUAN (String Source_Path, String Target_Path, String File_Type) {file file = 새 파일 (source_path); file pile. (file.isfile () && file.getabsolutepath (). endswith (file_type))) {String new_path = target_path + "/" + file.getname (); file 1 = new File (new_path); if (! exists ()) {try {file1.createnewfile (); 파일 이름은 동일합니다. // 사용 // 구별하기 위해 포인트 앞에 숫자를 추가하십시오. .String [] arr = new_path.split ( "//."); String new_path1 = ARR [0] + count + "대신 분리하려면. + arr [1]; file1.renameto (new file (new_path1));} // 파일이므로 파일을 복사하십시오 (file.getabsolutepath (), new_path); Body, Processing} else {for (int i = 0; i <names.length; i ++) {// 파일이 아니라 xunhuan (file.getabsolutepath () + "/" + names [i], file_type);}}} public static void filecopybybufferstreamarray, string streamarray, string streamarray 스트림 파일에 대한 지식이있는 파일을 쓰기 파일 = 새 파일 (srcfile); 파일 1 = 새 파일 (targetFile); fileInputStream fis = null; fileoutputStream fos = null; bufferedInputStream bis = null; bufferedOutputStream bos = null; vis = new FileInputStream (file); fileoutStream (fileoutstream); bufferedInputStream (fis); bos = new bufferedOutputStream (fos); int len = 0; byte [] b = new Byte [10]; {fis.close (); fos.close (); bis.close (); bos.close ();} catch (ioexception e) {}}}} 파일 복사 퇴치 클래스 :
패키지 guuze; import java.io.file; public class removetArgetFile {public static void startDelete (String Path) {file file = new File (path); deletefile (file);} private static void deletefile (파일 파일) {// 파일 (file.exists ()) {if (file.exists ()) {if (file.) file.delete ();} else if (file.isdirectory ()) {file [] files = file.listfiles (); for (int i = 0; i <files.length; i ++) {// 파일이 아닌 경우 반복 DeleteFile (files [i]);}}}}위의 것은 Java 파일 배치 라이닝 및 편집기가 소개 한 특정 유형의 파일의 배치 추출입니다. 모든 사람에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 모든 사람에게 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!