理由:
いくつかのビデオチュートリアルはオンラインでダウンロードされているため、それらのいくつかは非常に長い名前を持ち、一般的に機関やウェブサイトによって宣伝されているため、ビデオの導入を直接見ると便利ではないため、次の最初の機能が作成されました。
教師はコースウェアにあまりにも多くのフォルダーを送信したため、1つずつ見つけるのは面倒だったので、2番目の関数が作成されました。
私は最近Javaファイルとストリーミングの知識を学んだばかりなので、たまたまスキルを練習しました。これは私の最初のexeプログラムでもあるので、共有できます。
(JARファイルをエクスポートし、ツールEXE4Jを使用してEXEファイルを生成します。この部分は省略されています)
使用した知識:
Javaでファイル、ストリーム、および単純なGUI知識に関する知識を使用します。
関数:
関数1:ファイル名で特定のキーワードを削除すると、代替単語を設定することもできます。
関数2:特定のタイプのすべてのファイルをパスの下に抽出し、新しいフォルダーの下に配置します。複製されたファイルがある場合、それらは自動的にソートされ、それらを区別するための番号が追加されます。
まず、起動インターフェイスと生成されたexeファイルを見てください。
最初の機能デモンストレーション:
以前の操作はありません:
操作後:前の部分で同じキーワードをすべて削除します
撤退関数もあります:
2番目の関数デモンストレーション:
操作前:
操作後:
もちろん、離脱機能もあります
ソースコード分析:
スタートアップクラス:
パッケージguuze; public class test {public static void main(string [] args){// guiを起動します。つまり、ユーザーインターフェイスnew showgui();}}GUIクラスを表示:
パッケージguuze; import java.awt.dimension; Import java.awt.flowlayout; import java.awt.font; import java.awt.toolkit; Import java.awt.awt.event.mouseadapter; import java.awt.event.event.event.event.event.event.event.event.awnevent.awnevent.awt.event.event.event.event.event.event.event.event.event.event.event.event.event.event.event.event.event。 java.awt.event.windowevent; Import java.io.file; import javax.swing.jbutton; import javax.swing.jframe; Import javax.swing.jtextfield; public class showgui {private jframe f; private jbutton b1; private jbutton b3; private jbutton b3; private jbutton b3; private jbutton b3; private jbutton b3; private jbutton b3; private jbutton tf2; private jtextfield tf3; private jbutton b4; private jbutton b5; private jbutton b6; private jtextfield tf4; private jtextfield tf5; private jtextfield tf6; private static string s1; public showgui(){// call startgui()directgui()public voidgui(){)背景画像f.setlayout(new flowlayout()); image icon = toolkit.getDefaultToolkit()。getImage( "image/4.jpg"); //左上のロゴアイコンf.seticonimage(icon); b2 = new jbutton( "retract"); b3 = new jbutton( "exit"); b4 = new jbutton( "ワンクリック抽出"); b5 = new jbutton( "exit"); b6 = new jbutton( "exit"); 39)); b3.setPreferredSize(new Dimension(89、39)); b4.setPreferredSize(新しい次元(89、39)); = new jtextfield( "input absolute_path"、40); tf1.setfont(new font( "input absolute_path"、40); tf1.setfont(new font( "please"、font.plain、25)); tf1.setbounds(200、15、550、126); 40); tf2.setfont(new Font( "入力キーワード"、font.plain、25)) 126); tf4 = new jtextfield( "absolute_path"、40); tf4.setfont( "zongyi"、font.plain、25)) 40); tf5.setFont(new Font( "Pleate"、font.plain、25)); tf5.setbounds(200、15、550、126); tf6 = new Jtextfield( "入力Filetype"、40); tf6.setfont(new font( "please input"、font.plain、25); tf6.set.setcbunds); 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(b5);イベントリスニング機能myevent(); f.setVisible(true);} private void myevent(){//右上隅をクリックしてf.addwindowlistener(){public void closing(windowevent e){system.exit(0);}); mouseadapter(){public void mouseclicked(mousevent e){s1 = tf1.getText(); //テキストボックスの値で判断を下します。何も書かれていない場合、それは空として扱われます。以下は、if(s1.equals( "入力パス")){s1 = "";} file = new file(s1); string test []; test = file.list(); renamefunction.list1 = test; string s2 = tf2.getText(); if(s2.equals(s2.equords "){s2 = Strings") tf3.getText(); if(s3.equals( "交換用語")){s3 = "";} try {// rename rename renamefunction.sure(s1、s2、s3);} catch(例外E1){}}}); MouseClicked(MouseEvent e){try {try {if(!s1.equals( "pleate path")){// revokerename.revoke(s1);}} catch(excepsed e1){}}}}} catch(excepsed eadeadeListener()event b3.dmouseListener()b3.dmouseListener()catch(exconder e1 {}}}) MouseClicked(MouseEvent E){System.Exit(0); tf6.getText(); if(s2.equals( "aspolute_path")){s2 = "";} if(s3.equals( "s3 ="){s3 = "";} if(s4.equals( "filetype"){s4 = "";}/}/}/}/} s4);}}); //応答イベントb5.addmouseListener(new Mouseadapter(){public void mouseClicked(mouseEvent e){string s2 = tf5.getText(); // removeTargetFile.startdelete(s2);}) mouseadapter(){public void mouseclicked(mouseevent e){system.exit(0); // 出口}});}} GUI背景画像設定クラス:
パッケージGuuze; Import javax.swing.imageicon; Import javax.swing.jframe;インポートjavax.swing.jlabel; import javax.swing.jpanel; public class bgsetはjframeを拡張します{private static final long serialversionuid = 1l; public bgset(){/ set super "、000、100、100、100、100、100、setbound() 600); //背景画像へのパス。 string path = "image/3.jpg"; imageIcon background = new ImageIcon(path); jlabel label = new jlabel(background); label.setbounds(0、0、this.getWidth()、this.getheight()); jpanel imagepanel =(jpanel)(jpanel) this.getContentPane(); imagePanel.setopaque(false); this.getLayeredPane()。add(label、new integer(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(string s1、string s2、string s3)throws excepsion name for(int i = 0; i <test.length; i ++){//削除するキーワードがあるかどうかを判断するif(test [i] .indexof(s2)!= -1){//名前が変更されたファイル名テスト[i] = test [i] .replace(s2、s3);}} file [] fil.listfien test.length;){for(file f:files){if(f.isfile()){//名前をループf.renameto(new file(s1 + "/" + test [i ++]);}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}ファイルの名前を変更して撤回しますfunctionクラス:
パッケージGuuze; Import java.io.file; public class revokerename {public static void evoke(string s1)throws exception {//元の名前を再割り当てfile = new file(s1); file [] files = file.listfiles(); {// test1f.renameto(new file(s1 + "/" + ranamefunction.test1 [i ++]);}}}}}}}}に注意することに注意してください。ファイルコピークラス:
パッケージGuuze; Import Java.io.BufferedInputStream; Import Java.io.BufferedOutputStream; Import java.io.file; Import java.fileinputStream; Import java.io.fileoutputStream; Import java.io.io.io.ioexception; Import Java.io.ioexception;公開クラスSearchFunction(Static count = 1 1 string target_path、string file_type){//ループ関数xunhuan(source_path、target_path、file_type);} public static void xunhuan(string source、string target_path、string file_type){file file = new file(source_path); string names [] file.list() (file.isfile()&& file.getabsolutepath()。endswith(file_type)){string new_path = target_path + " + file.getname(); file1 = new file(new_path); if(!file1.exists()){try {file1.createNewfile()ファイル名は同じです。ポイントの前に番号を追加して// //を使用してください。 [] string [] arr = new_path.split( "//。"); string new_path1 = arr [0] + count + "。"。 + arr [1]; file1.renameto(new file(new_path1));} //ファイルです。ファイルのコピーを開始します。filecopybufferstreamarray(file.getabsolutepath()、new_path);}ボディ、処理をしないでくださいストリームの知識を持つファイルfile = new file(srcfile); file1 = new file(targetfile); fileinputStream fis = null; fileoutputStream fos = null; bufferedinputStream bis = null; bufferedoutputstream bos = null; bufferedinputStream(fis); bos = new bufferedoutputstream(fos); int len = 0; byte [] b = new byte [10]; while((len = bis.read(b))!= -1){bos.write(b、0、len);} bos {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 void deletefile(file file){//パスのフォルダーを削除しないことを忘れないでください。 delete file.delete();} else if(file.isdirectory()){file [] files = file.listfiles(); for(int i = 0; i <files.length; i ++){//ファイルではない場合は、deletefile(files [i]);}}}}}}}}}}}}}}}}}}}}上記は、編集者によって導入された特定のタイプのファイルのJavaファイルバッチの名前変更とバッチ抽出です。私はそれが誰にでも役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は、すべての人に時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!