причина:
Поскольку некоторые видеоуроки загружаются в Интернете, некоторые из них имеют очень длинные имена, и, как правило, продвигаются учреждениями или веб -сайтами, поэтому непосредственно увидеть введение видео, поэтому была сделана следующая первая функция.
Поскольку учитель послал слишком много папок в программном обеспечении, было слишком хлопотно, чтобы узнать одну за другой, поэтому была сделана вторая функция.
Я только что узнал знания о файлах Java и потоковой передаче, поэтому я только что практиковал свои навыки. Это также моя первая программа EXE, поэтому я могу поделиться ею.
(Экспортируйте файл JAR и используйте инструмент exe4j для генерации файла EXE, эта часть опущена)
Знание используется:
Использует знание файлов, потоков и простых знаний по графическим интерфейсу в Java.
Функция:
Функция 1: Удалите определенные ключевые слова в имени файла, и вы также можете установить заменительные слова.
Функция 2: Извлеките все файлы определенных типов под пути и поместите их в новую папку. Если есть дубликаты файлов, они будут автоматически отсортированы и добавляют числа, чтобы различать их.
Сначала посмотрите на интерфейс запуска и сгенерированный файл EXE:
Первая демонстрация функции:
Нет операции раньше:
После работы: удалить все те же ключевые слова в предыдущей части
Существует также функция отмены:
Вторая демонстрация функции:
Перед операцией:
После операции:
Конечно, есть также функция отмены
Анализ исходного кода:
Класс стартапов:
Пакет Guuze; Public Class Test {public static void main (string [] args) {// запустить графический интерфейс, то есть пользовательский интерфейс New ShowGui ();}}Показать класс GUI:
Пакет Guuze; импорт java.awt.dimension; импорт java.awt.flowlayout; импорт java.awt.font; import java.awt.image; импорт java.awt.toolkit; импорт java.awt.event.mouseadapter; import java. java.awt.event.windowevent; import java.io.file; import javax.swing.jbutton; импорт javax.swing.jframe; импорт javax.swing.jtextfield; Public Class ShowGui {Private Jframe F; Private Jbutton B1; Private Jbutton B2; Private Jbutton B3; Private Jbelipfield; 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 () напрямую;} public Void STARTGUI () {f = new BGSET (); //SETSE напрямую; Flowlayout ()); Image icon = toolkit.getDefaulttoolkit (). GetiMage ("Image/4.jpg"); // Установить верхний левый значок логотипа f.seTicOnimage (icon); // 6 кнопки B1 = new JButton ("Start"); b2 = new jbutton ("antuct"); b3 = new jbutton ("exit"); b4 = new jbutton ("extraction"); b5 = new jbutton ("exit"); b6 = new jbutton ("exit"); // Размер 6 кнопок B1.SetPreferredSize (новое измерение (89, 39)); b2.setprefrefersize (новая размер (89, 39)); b2.setprefrefersize (новая размер (89, 39)); b2.setprefrefersize (новая размер (89, 39)); b2.setprefersize (новая размер (89, 39)); 39)); B3.SetPreferredSize (новое измерение (89, 39)); B4.SetPreferredSize (Новое измерение (89, 39)); B5.SetPreferredSize (Новое измерение (89, 39)); B6.SetPrefreferredSize (новое размер (89, 39));// selem stembreSsize и аттриб. New JTextField («Пожалуйста, введите Absolute_Path», 40); TF1.SetFont (новый шрифт («Пожалуйста, введите Absolute_Path», 40); TF1.SetFont (новый шрифт («Пожалуйста, ввод», Font.Plain, 25); TF1.SetBounds (200, 15, 550, 126); TF2 = new JTextField (Pleept winte ». Font («Пожалуйста, введите ключевые слова», font.plain, 25)); TF2.SetBounds (200, 15, 550, 126); TF3 = новый JTextField («Пожалуйста, ввод Заменить», 40); TF3.SetFont (новый шрифт ("Zongyi", font.Plain, 25); TF3.SetBounds (200, 1550, 126); Ввод Absolute_Path ", 40); TF4.SetFont (новый шрифт (" Zongyi ", font.plain, 25)); TF4.SetBounds (200, 15, 550, 126); TF5 = new JTextField (" Pleas Wint Target_Path ", 40); TF5.SetFont (new Font (" Phtovery_path ", 40); Font.Plain, 25)); TF5.SetBounds (200, 15, 550, 126); TF6 = New JTextField («Пожалуйста, ввод FileType», 40); TF6.SetFont (новый шрифт («Пожалуйста, ввод», Font.Plain, 25); TF6.SetBounds (200, 15, 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 (B5); Функция прослушивания событий myevent (); f.setvisible (true);} private void myevent () {// Нажмите на верхний правый угол × to exit f.addwindowlistener (new windowdapter () {public vide windowsclaze (windowEvent e) {System.Exit (0);}}); {public void mouseClicked (mouseevent e) {s1 = tf1.getText (); // вынести суждения о значении в текстовом поле. Если ничего не написано, это рассматривается как пустое. Ниже приведено аналогично if (s1.equals ("pleo wout wath")) {s1 = "";} файл файла = новый файл (s1); string test []; test = file.list (); renamefunction.test1 = test; string s2 = tf2.gettext (); if (s2.equals ("пожалуйста входные слова")) {s2 = ""; (s3.equals («Пожалуйста, введите замена слов»)) {s3 = "";} try {// запустить функцию rename renamefunction.sure (s1, s2, s3);} catch (exception e1) {}}}); // click event b2.addmouseListener (new MouseAdapter () eaid void mouscliked (void void void void void void void void void void void void {try {if (! s1.equals ("plow plose path")) {// start revokerEname.revoke (s1);}} catch (Exception e2) {}} catch (Exception e1) {}}}); // click event respence b3.addmouseListener (new mouseAdapter () {publice void mouse evidiceerecediceereceereceeeee evidexeee evidexeee eveliceerecedeelistener (new mouseadapter () {System.Exit (0); Absolute_Path ")) {s2 =" ";} if (s3.equals (" пожалуйста, введите target_path ")) {s3 =" ";} if (s4.equals (" пожалуйста введите filetype ")) {s4 =" ";} // stear funt function function.startcopy (s2, s3, s4); B5.AddMouseListener (new MouseAdapter () {public void mouseClicked (mouseEvent e) {String S2 = tf5.getText (); // Запуск функции вывода removetargetFile.startDelete (s2);}}) MouseClicked (MouseEvent E) {System.Exit (0); // Выход}});}} Настройки фонового изображения графического интерфейса класс:
Пакет guuze; import javax.swing.imageicon; import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.jpanel; открытый класс Bgset расширяет jframe {private Static final Long LongersionUid = 1L; public bgset () {// Set Title Super («Великие рынки»); 600); // Путь к фоновому изображению. Строка PATH = "Image/3.jpg"; ImageICon founal = new Imageicon (path); jlabel label = new jlabel (founale); label.setbounds (0, 0, this.getwidth (), this.getheight ()); jpanel imagepanel = (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 sue (int i = 0; i <test.length; i ++) {// определить, есть ли ключевое слово, которое вы хотите удалить if (test [i] .indexof (s2)! = -1) {// Сохранить тест имени файла переименованного [i] = test [i] .replace (s2, s3);}} file file = file. F: Files) {if (f.isfile ()) {// Описать имя переименования f.renameto (новый файл (s1 + "/" + test [i ++]));}}}}}} Файл переименовать и снять класс функций:
Пакет guuze; import java.io.file; открытый класс RevokerEname {public static void repoke (String S1) Throws Exception {// повторно оценить исходный файл имен файл = new File (s1); файл [] files = file.listfiles (); for (int i = 0; i <renamefunction.test1.length;) {) test1f.renameto (новый файл (s1 + "/" + renamefunction.test1 [i ++]));}}}}}} Класс копирования файла:
Пакет guuze; import java.io.bufferedInputStream; импорт java.io.bufferedOutputStream; импорт java.io.file; import java.io.fileinputstream; import java.io.fileoutputstream; import java.io.ioexcept target_path, string file_type) {// запустить функцию цикла xunhuan (source_path, target_path, file_type);} public static void xunhuan (string source_path, string target_pal Want if (file.isfile () && file.getabsolutePath (). Endswith (file_type)) {string new_path = target_path + "/" + file.getName (); file1 = new File (new_path); if (! {// Если имя файла одинаково, добавьте номер перед точкой, чтобы отличить //, пожалуйста, используйте //. разделить его вместо. + arr [1]; file1.renameto (new File (new_path1));} // Это файл, поэтому начните копировать файл filecopybuffersreamarray (file.getabsolutepath (), new_path);} else (file.ishile () &&! Тело метода, просто не выполняйте обработку} else {for (int i = 0; i <names.length; i ++) {// Не файл, итатерация xunhuan (file.getabsolutepath () + "/" + names [i], target_path, file_type);}}} public void fiecopybuffersReamray (string stricebufleraray (strishfile) {// Написать файлы со знанием потоков файл файла = новый файл (srcfile); файл файла1 = новый файл (targetfile); fileInputStream fis = null; fileOutputStream fos = null; BufferedInputStream bis = null; BufferedOutputStream bos = null; try {fis = new FileInpream (fileOutStream (fileOutStream; fileOuteR; fileOuteR; fileOuteam; fileOuteam; fileOuteam; fileOuteam; fileOuteam; fileOuteam; 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.flush (); {fis.close (); fos.close (); bis.close (); bos.close ();} catch (ioexception e) {}}}} Файл -копия Класс отвлечения:
Пакет Guuze; Import java.io.file; открытый класс removeTargetFile {public static void startDelete (String Path) {file file = new File (path); deletefile (file);} private static void deletefile (файл файл) {// не помни, чтобы удалять палубу/ exist delete file.delete ();} else if (file.isdirectory ()) {file [] files = file.listfiles (); for (int i = 0; i <files.length; i ++) {// Если это не файл, iterate deletefile (files [i]);}}}}}Выше приведено переименование партии файла Java и извлечение партии конкретных типов файлов, введенных редактором. Я надеюсь, что это будет полезно для всех. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит всем вовремя. Большое спасибо за вашу поддержку сайту wulin.com!