razón:
Debido a que algunos videos tutoriales se descargan en línea, algunos de ellos tienen nombres muy largos y generalmente son promovidos por instituciones o sitios web, por lo que no es conveniente ver directamente la introducción del video, por lo que se realizó la siguiente primera función.
Debido a que el maestro envió demasiadas carpetas en el curso de curso, era demasiado problemático para descubrir una por una, por lo que se realizó la segunda función.
Acabo de aprender el conocimiento de los archivos de Java y la transmisión recientemente, así que solo practicé mis habilidades. Este es también mi primer programa EXE, por lo que puedo compartirlo.
(Exporte el archivo jar y use la herramienta exe4j para generar el archivo exe, esta parte se omite)
Conocimiento utilizado:
Utiliza conocimiento de archivos, transmisiones y conocimiento de GUI simple en Java.
Función:
Función 1: Elimine ciertas palabras clave en el nombre del archivo, y también puede establecer palabras sustitutivas.
Función 2: Extraiga todos los archivos de tipos específicos en una ruta y colóquelos en una nueva carpeta. Si hay archivos duplicados, se clasificarán automáticamente y se agregarán números para distinguirlos.
Primero busque la interfaz de inicio y el archivo EXE generado:
La primera demostración de características:
No hay operación antes:
Después de la operación: elimine las mismas palabras clave en la parte anterior
También hay una función de retiro:
La segunda demostración de la función:
Antes de la operación:
Después de la operación:
Por supuesto, también hay una función de retiro
Análisis del código fuente:
Clase de inicio:
paquete guuze; prueba de clase pública {public static void main (string [] args) {// Inicie la GUI, es decir, la interfaz de usuario nueva showgui ();}}Mostrar clase GUI:
paquete 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; import java.awt.Avent.Avent.Avent.Avent.WinDow java.awt.event.windowevent; import java.io.file; import javax.swing.jbutton; import javax.swing.jframe; import javax.swing.jTextField; clase pública showgui {privado jframe f; privado jButton b1; tf2; privado 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 () {// llame a inicio () directamente; F.SetLayout (new FlowLayout ()); Image icon = Toolkit.getDefaultToolkit (). GetImage ("Image/4.jpg"); // Establezca el icono del logotipo superior izquierdo F.SeticOnimage (icon); // 6 Botones B1 = new JButton ("Start"); b2 = nuevo JButton ("RetRacto"); b3 = new JButton("Exit");b4 = new JButton("One-click extraction");b5 = new JButton("Exit");b6 = new JButton("Exit");// The size of 6 buttons b1.setPreferredSize(new Dimension(89, 39));b2.setPreferredSize(new Dimension(89, 39)); b3.setPreferedSize (nueva dimensión (89, 39)); b4.setPreferedSize (nueva dimensión (89, 39)); b5.setPreferRedSize (nueva dimensión (89, 39)); B6.SetPreferRedSize (New Dimension (89, 39)); // el tamaño de los 6 cajas de texto y el atributas de la entrada de la entrada de la entrada (89, 39)); // el tamaño de 6 boxes y el atributas de los atributos de la entrada de los atributos de la entrada (89, 39)); // el tamaño de los casos de 6 y el atributas de los atributos de la entrada de los atributos de la entrada (89, 39)); new JTextField("Please input absolute_path", 40);tf1.setFont(new Font("Please input absolute_path", 40);tf1.setFont(new Font("Please input", Font.PLAIN, 25));tf1.setBounds(200, 15, 550, 126);tf2 = new JTextField("Please input keyWords", 40); tf2.setFont (nueva fuente ("por favor ingrese palabras clave", font.plain, 25)); tf2.setBounds (200, 15, 550, 126); tf3 = new JTextField ("por favor ingrese las palabras reemplazadas", 40); tf3.setfont (new font ("zongyi", font.Plain, 25); 126);tf4 = new JTextField("Please input absolute_path", 40);tf4.setFont(new Font("Zongyi", Font.PLAIN, 25));tf4.setBounds(200, 15, 550, 126);tf5 = new JTextField("Please input target_path", 40);tf5.setFont(new Font("Please input target_path", 40); tf5.setFont (nueva fuente ("por favor, entrada", font.plain, 25)); tf5.setBounds (200, 15, 550, 126); tf6 = new JTextfield ("por favor ingrese el tipo de archivo", 40); tf6.setfont (new font ("entrada", font.plain, 25)); TF6.setBounds (200, 15, 15, 126). Agregue el botón y el cuadro de texto a 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); f.add (b6); Función de escucha de eventos myEvent (); f.setVisible (true);} private void myEvent () {// Haga clic en la esquina superior derecha × para salir de F.addwindowlistener (new WindowAdapter () {public void WindowClosing (WindowsEvent e) {System.exit (0);}}}); // Haga clic en el evento de respuesta B1.addmouseLister (niew Mouseader () {public void mouseClicked (MouseEvent E) {S1 = tf1.gettext (); // hacer juicios sobre el valor en el cuadro de texto. Si no se escribe nada, se trata como vacío. Lo siguiente es similar a if (s1.equals ("por favor ingrese ruta")) {s1 = "" ";} archivo archivo = nuevo archivo (s1); string test []; test = file.list (); renameFunction.test1 = test; string s2 = tf2.gettext (); if (s2.equals (" por favor reemplazar las palabras ")) {s2 =" ";} tf3.gettext (); if (s3.equals ("por favor ingrese reemplazar palabras")) {s3 = "";} try {// inicie la función renombre renameFunction.sure (s1, s2, s3);} capt (excepción e1) {}}}}); // haga clic en la respuesta b2.addMouseSeSeSeSeSeSeSeN mouseClicked (mouseEvent e) {try {try {if (! S1.equals ("por favor ingresa ruta")) {// inicia revocineename.revoke (s1);}} catch (excepción e2) {}} catch (excepción e1) {}}}); // hace clic en la respuesta b3.addmouseSelisterer (neo mouseader (new mouseader () MouseClicked (MouseEvent E) {System.Exit (0);/ SALT}}); // Haga clic en el evento de respuesta B4.AddMouseListener (new Mouseadapter () {public void MouseClicked (mouseEvent e) {string s2 = tf4.gettext (); string s3 = tf5.gettext (); string s4.gettext () (s2.Equals ("por favor, ingrese absoluto_path")) {s2 = "" ";} if (s3.equals (" por favor, ingrese Target_Path ")) {s3 =" "";} if (S4.Equals ("por favor ingrese fileType")) {s4 = "";} // inicie la función de búsqueda de archivo. El evento de respuesta B5.AddMousElistener (new Mouseadapter () {public void MouseClicked (MouseEvent E) {String s2 = tf5.gettext (); // Inicie la función de retirar eliminar la fila.startdelete (s2);}}); // click la respuesta event b6.addMouseSelisterer (new museader () {) {) mouseclicked (mouseevent e) {system.exit (0); // Salida}});}} Clase de configuración de imagen de fondo de GUI:
package guuze;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;public class BgSet extends JFrame {private static final long serialVersionUID = 1L;public BgSet() {// Set title super("GreatFish");setBounds(100, 100, 600, 600); // Ruta a la imagen de fondo. String ruta = "Image/3.jpg"; Imageicon Background = new ImageCon (ruta); JLabel Label = new JLabel (fondo); etiqueta this.getContentPane (); imagePanel.SetOpAque (false); this.getLayeredPane (). add (etiqueta, nuevo entero (integer.min_value));}} Clase de cambio de nombre de archivo:
paquete 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 spore (string s1, string s2, string s3) lanza excepción {archivo de archivo = nuevo archivo (s1); string test []; test = file.list (); (int i = 0; i <test.length; i ++) {// Determine si hay una palabra clave que desee eliminar if (test [i] .indexof (s2)! = -1) {// Guardar el nombre de archivo renombrado [i] = test [i] .replace (s2, s3);}}} [] archivadores = file.listfiles (); para (int i = 0; {for (archivo f: archivos) {if (f.isfile ()) {// bucle el nombre de nombre de nombre f.Renameto (nuevo archivo (s1 + "/" + test [i ++]);}}}}}} Clase de función de cambio de nombre y retiro de archivo:
paquete guuze; import java.io.file; public class RevokerEname {public static void revoke (String s1) lanza la excepción {// reasignar el archivo de nombre original de archivo = nuevo archivo (s1); file [] files = file.listFiles (); for (int i = 0; i <renoMeMeFunction.test1.length;) {for (file f: fils) if (if (f.Smill) {// Tenga en cuenta que test1f.renameto (nuevo archivo (s1 + "/" + renameFunction.test1 [i ++]));}}}}}} Clase de copia del archivo:
paquete guuze; import java.io.bufferedInputStream; import java.io.bufferedOutputPutStream; import java.io.file; import java.io.fileInputStream; import java.io.fileOutputStream; import java.io.ioxception; clase de búsqueda pública; target_path, string file_type) {// Inicie la función de bucle xunhuan (fuente_path, target_path, file_type);} public static void xunhuan (string source_path, string target_path, string file_type) {archivo archivo = nuevo archivo (nuevo source_path); string names [] = file.list (); // Determine un archivo y termina con el archivo y termina con el archivo con el archivo con el archivo (finaliza el archivo con el archivo con el archivo con el archivo y se determina con el archivo con el archivo con el archivo con el archivo y se determina con el archivo con el archivo y termina con el archivo con el archivo con el archivo con el archivo con el archivo y se determina con el archivo con el archivo con el archivo con el archivo con el archivo con el archivo y se determina con el archivo con el archivo con el archivo con el archivo y se determina con el archivo con el archivo con el archivo con el archivo. want if (file.isfile () && file.getabsolutePath (). endswith (file_type)) {string new_path = target_path + "/" + file.getName (); file1 = new File (new_path); if (! File1.exists () {intente {file1.createnewfile ();} {// Si el nombre del archivo es el mismo, agregue un número antes del punto para distinguir // use //. Para separarlo en lugar de.String [] arr = new_path.split ("//."); String new_path1 = arr [0] + count + "." + arr [1]; file1.renameto (nuevo archivo (new_path1));} // Es un archivo, así que comience a copiar el archivo fileCopyByBufferStreamArray (file.getabsolutePath (), new_path);} else if (file.isfile () &&! File.getabsolutepath (). Método Cuerpo, simplemente no se procese} else {for (int i = 0; i <names.length; i ++) {// no es un archivo, iterate xunhuan (file.getabsolutePath () + "/" + nombres [i], target_path, file_type);}}} public estatic void fileCopybufferstorray (string sRcfile, string strcfile, stri Escriba archivos con conocimiento del archivo de flujo de transmisión = nuevo archivo (srcfile); archivo file1 = nuevo archivo (targetFile); fileInputStream fis = null; fileOutputStream fos = null; bufferedInputStream bis = nulL; bufferedOutStream bos = null; try {fis = newInputStream (file); fos = newOutputStream (File1); 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 ();} capt (ioexception e) {}}}} Clase de retracción de copia del archivo:
paquete guuze; import java.io.file; public class RemoveSetArgetFile {public static void startDelete (string path) {file file = new File (path); deletefile (archivo);} private static void deletefile (archivo) {// Recuerde no para que no elimine la carpeta de la ruta if (file.exists ()) {if (archivo.isfile ()),), no se elimina la carpoder de la ruta if (file.exists ()) {if (file.isfile () ()). eliminar file.delete ();} else if (file.isDirectory ()) {file [] file = file.listfiles (); for (int i = 0; i <files.length; i ++) {// Si no es un archivo, iterate deletefile (archivos [i]);}}}}}Lo anterior es el cambio de nombre de lotes de archivo Java y extracción por lotes de tipos específicos de archivos introducidos por el editor. Espero que sea útil para todos. Si tiene alguna pregunta, déjame un mensaje y el editor responderá a todos a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!