سبب:
نظرًا لأن بعض البرامج التعليمية للفيديو يتم تنزيلها عبر الإنترنت ، فإن بعضها لديه أسماء طويلة جدًا ، ويتم ترقيتها عمومًا من قبل المؤسسات أو المواقع الإلكترونية ، لذلك ليس من المناسب رؤية مقدمة الفيديو مباشرة ، لذلك تم تقديم الوظيفة الأولى التالية.
نظرًا لأن المعلم أرسل الكثير من المجلدات في مجلدات الدورة التدريبية ، فقد كان من المقلق للغاية معرفة واحدة تلو الأخرى ، لذلك تم إجراء الوظيفة الثانية.
لقد تعلمت للتو معرفة ملفات Java وتدفق مؤخرًا ، لذلك صادفت أن أمارس مهاراتي. هذا هو أيضًا برنامج EXE الأول ، حتى أتمكن من مشاركته.
(تصدير ملف JAR واستخدم أداة exe4j لإنشاء ملف exe ، تم حذف هذا الجزء)
المعرفة المستخدمة:
يستخدم المعرفة بالملفات والتدفقات ومعرفة واجهة المستخدم الرسومية البسيطة في Java.
وظيفة:
الوظيفة 1: إزالة كلمات رئيسية معينة في اسم الملف ، ويمكنك أيضًا تعيين كلمات بديلة.
الوظيفة 2: استخراج جميع ملفات الأنواع المحددة تحت المسار ووضعها تحت مجلد جديد. إذا كانت هناك ملفات مكررة ، فسيتم فرزها تلقائيًا وإضافة أرقام لتمييزها.
انظر أولاً إلى واجهة بدء التشغيل وملف exe الذي تم إنشاؤه:
عرض الميزة الأولى:
لا توجد عملية من قبل:
بعد العملية: قم بإزالة جميع الكلمات الرئيسية نفسها في الجزء السابق
هناك أيضا وظيفة الانسحاب:
مظاهرة الوظيفة الثانية:
قبل العملية:
بعد العملية:
بالطبع ، هناك أيضًا وظيفة انسحاب
تحليل رمز المصدر:
فئة بدء التشغيل:
حزمة Guuze ؛ اختبار الفئة العامة {public static void main (string [] args) {// ابدأ واجهة المستخدم الرسومية ، أي واجهة المستخدم الجديدة showgui () ؛}}عرض واجهة المستخدم الرسومية:
حزمة guuze ؛ استيراد java.awt.dimension ؛ استيراد java.awt.flowlayout ؛ استيراد java.awt.font ؛ استيراد java.awt.image ؛ استيراد java.awt.toolkit java.awt.event.windowevent ؛ استيراد java.io.file ؛ استيراد javax.swing.jbutton ؛ استيراد javax.swing.jframe ؛ import javax.swing.jtextfield ؛ private jtextfivel tf1 {private jframe f ؛ private jbutton b1 ؛ private jbutton b2 ؛ private jtxtfield b3 ؛ tf2 ؛ private Jtextfield TF3 ؛ private jbutton b4 ؛ private jbutton b5 ؛ private jbutton b6 ؛ private jtextfield tf4 ؛ private jtextfield tf5 ؛ private jtextfield tf6 ؛ start static public ؛ pression s1 ؛ public showgui () {// call startgui () مباشرة ؛ F.SetLayout (New FlowLayout ()) ؛ Image Icon = Toolkit.getDefaultToolkit (). getImage ("Image/4.jpg") ؛ // قم بتعيين رمز الشعار العلوي الأيسر F.SeticOnimage (أيقونة) ؛ // 6 أزرار B1 = New JButton ("Start") ؛ B2 = New JButton ("Retract") ؛ B3 = New JButton ("Exit") ؛ B4 = New JButton ("استخراج نقرة واحدة") ؛ B5 = New JButton ("Exit") ؛ B6 = New JButton ("EXIT") ؛ // بحجم 6 أزرار B1.setPreferredsize (New Dimense (89 ، 39)) 39)) ؛ B3.SetPreferredSize (البعد الجديد (89 ، 39)) ؛ B4.SetPreferredSize (البعد الجديد (89 ، 39)) ؛ B5.setPreferredsize (البعد الجديد (89 ، 39)) ؛ New JTextField ("الرجاء إدخال absomute_path" ، 40) ؛ tf1.setfont (خط جديد ("الرجاء إدخال absomute_path" ، 40) ؛ tf1.setfont (خط جديد ("الرجاء الإدخال" ، font.plain ، 25)) font ("الرجاء إدخال الكلمات الرئيسية" ، font.plain ، 25)) ؛ tf2.setBounds (200 ، 15 ، 550 ، 126) ؛ jtextfield ("الرجاء إدخال appolute_path" ، 40) ؛ tf4.setfont (خط جديد ("Zongyi" ، font.plain ، 25)) ؛ tf4.setBounds (200 ، 15 ، 550 ، 126) ؛ الخط ("الرجاء الإدخال" ، font.plain ، 25)) ؛ tf5.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 () {// انقر فوق الزاوية اليمنى العليا × للخروج {public void mouseclicked (mouseevent e) {s1 = tf1.getText () ؛ // إصدار أحكام على القيمة في مربع النص. إذا لم يتم كتابة أي شيء ، يتم التعامل معها على أنها فارغة. ما يلي مشابه لـ if (s1.equals ("الرجاء إدخال مسار")) {s1 = "" ؛} ملف الملف = ملف جديد (s1) ؛ اختبار السلسلة [] tf3.getText () ؛ if (s3.equals ("يرجى إدخال replacewords")) {s3 = "" ؛} حاول {// ابدأ وظيفة إعادة تسمية RenameFunction.sure (s1 ، s2 ، s3) ؛} catch (استثناء e1) {}}}) ؛ mouseclicked (mouseevent e) {try {try {if (! s1.equals ("الرجاء إدخال مسار")) {// start revokerename.revoke (s1) ؛}} catch (استثناء e2) {}} catch (استثناء e1) {}}}) mouseclicked (mouseevent e) {system.exit (0) ؛ (S2.equals ("الرجاء إدخال absomute_path"))) {s2 = "" ؛} إذا (s3.equals ("الرجاء إدخال target_path")) {s3 = "؛} if (s4.equals (" الرجاء إدخال fileType ")) {s4 =" "" حدث الاستجابة B5.AddMousElistener (جديد mouseadapter () {public void mouseclicked (mouseevent e) {String S2 = mouseclicked (mouseevent e) {system.exit (0) ؛ // مخرج}})؛}} إعدادات صورة خلفية واجهة المستخدم الرسومية الفئة:
Package Guuze ؛ import javax.swing.imageicon ؛ import javax.swing.jframe ؛ import javax.swing.jlabel ؛ import javax.swing.jpanel ؛ public class bgset يمتد Jframe {private static final long serialversionuid = 1l ؛ 600) ؛ // مسار إلى صورة الخلفية. string path = "image/3.jpg" ؛ picturecon background = new imageicon (path) ؛ jlabel label = new jlabel (background) ؛ label.setBounds (0 ، 0 ، this.getWidth () ، this.getheight ()) ؛ jpanel imagepanel = (jpanel) this.getContentPane () ؛ imagepanel.setopaque (false) ؛ this.getLayeredPane (). Add (label ، عدد صحيح جديد (integer.min_value)) ؛}} فئة إعادة تسمية الملف:
package guuze ؛ import java.io.file ؛ import java.util.scanner ؛ public class renamefunction {static scanner input = new scanner (system.in) ؛ public static string test1 [] i = 0 ؛ i <test.length ؛ f: files) {if (f.isfile ()) {// looping اسم إعادة تسمية f.renameto (ملف جديد (s1 + "/" + test [i ++])) ؛}}}}}} ملف إعادة تسمية الملف وسحب الوظيفة:
حزمة guuze ؛ import java.io.file ؛ فئة عامة revokerename {public static void revoke (سلسلة S1) يلقي استثناء {// إعادة تعيين ملف file الأصلي = ملف جديد (s1) ؛ file [] file = file.listfiles () ؛ for (int i = 0 ؛ لاحظ أن test1f.renameto (ملف جديد (S1 + "/" + RenameFunction.test1 [i ++])) ؛}}}}}}} فئة نسخ الملف:
package guuze ؛ import java.io.bufferedInputStream ؛ import java.io.bufferedoutputstream ؛ import java.io string target_path ، string file_type) {// ابدأ وظيفة loop xunhuan (source_path ، target_path ، file_type) ؛} void static void xunhuan (string source_path ، string target_path ، string file_type) {file file (file source_path) ؛ (file.isfile () && file.getabsolutepath (). endswith (file_type)) {string new_path = target_path + "/" + file.getName () ؛ file11 = file new (new_path) ؛ if (! اسم الملف هو نفسه ، أضف رقمًا قبل نقطة التمييز // الرجاء استخدام //. لفصله بدلاً من. + arr [1] ؛ file1.renameto (ملف جديد (new_path1)) ؛} // هو ملف ، لذا ابدأ في نسخ ملف fileCopyByBufferStreamarray (file.getabsolutepath () ، new_path) ؛} الجسم ، فقط لا تفعل المعالجة} آخر {for (int i = 0 ؛ i <names.length ؛ i ++) {// not ملف ، تكرار xunhuan (file.getabsolutepath () + "/" + أسماء [i] اكتب ملفات مع معرفة ملف تدفق ملف = ملف جديد (srcfile) ؛ file file1 = ملف جديد (TargetFile) ؛ fileInputStream fis = null ؛ fileOutputStream fos = null ؛ bufferedInputStream bis = null ؛ bufferedoutputstream bos = null ؛ bufferedInputStream (fis) ؛ bos = جديد bufferedoutputstream (fos) ؛ int len = 0 ؛ byte [] b = new byte [10] ؛ {fis.close () ؛ fos.close () ؛ bis.close () ؛ bos.close () ؛} catch (ioException e) {}}}} فئة تراجع نسخ الملف:
package guuze ؛ import java.io.file ؛ removetargetFile {public static static void startDelete (مسار السلسلة) {file file = ملف جديد (path) ؛ deletefile (file) ؛ delete file.delete () ؛} آخر if (file.isdirectory ()) {file [] files = file.listfiles () ؛ لـ (int i = 0 ؛ i <files.length ؛ i ++) {// إذا لم يكن ملفًا ، فقم بتكرار deletefile (ملفات [i]) ؛}}}}}}ما سبق هو إعادة تسمية الدُفعة الخاصة بملف Java واستخلاص الدُفعات لأنواع محددة من الملفات التي أدخلها المحرر. آمل أن يكون ذلك مفيدًا للجميع. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر على الجميع في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!