為了熟悉文件的基本操作,寫了一個文件計數(shù)器 .. 界面有些簡陋..
?
?
?
1: 文件計數(shù)的具體實現(xiàn)
import java.io.File; import javax.swing.JOptionPane; /** * 指定路徑下文件夾和文件的數(shù)目及大小. * @author d.s *z */ public class FileCount { /** * 得到文件數(shù)目 * * @param path * :指定的路徑 * @return 文件個數(shù) */ public int fCount(String path) { int countF = 0; File file = new File(path); // 路徑存在時: if (file.exists()) { // 該路徑下是一個文件的時候 if (file.isFile()) { System.out.println("文件路徑為:" + file.getAbsolutePath()); countF++; } if (file.isDirectory()) {// 該路徑下是一個文件夾的時候 // 依次訪問該文件夾下的所有文件和文件夾. File f[] = file.listFiles(); for (int i = 0; i < f.length; i++) { // 遞歸調(diào)用fCount方法 countF += fCount(f[i].getAbsolutePath()); } } } else { JOptionPane.showMessageDialog(null, "統(tǒng)計文件數(shù)目的路徑錯誤!!!"); } return countF; } /** * 該路徑下的文件夾數(shù)目 * * @param path指定的路徑 * @return 文件夾數(shù)目 */ public int Dircount(String path) { int countD = 0; File file = new File(path); // 如果路徑正確 if (file.exists()) { // 是文件夾的時候 if (file.isDirectory()) { System.out.println(file.getAbsolutePath()); countD++; File f[] = file.listFiles(); for (int i = 0; i < f.length; i++) { // 遞歸 countD += Dircount(f[i].getAbsolutePath()); } } } else { JOptionPane.showMessageDialog(null, "統(tǒng)計文件夾的路徑錯誤!!!"); } return countD; } /** * 得到指定路徑下所有文件的大小之和 * * @param path指定的路徑 * @return 指定路徑下所有文件的大小之和 */ public long fileLength(String path) { long length = 0; File file = new File(path); // 如果路徑正確 if (file.exists()) { //如果是文件 if(file.isFile()){ length += file.length(); } //如果是文件夾 if(file.isDirectory()){ File f[] = file.listFiles(); for(int i = 0; i< f.length;i++){ length += fileLength(f[i].getAbsolutePath()); } } } return length; } }
?
?
2: 計數(shù)器的一個簡單界面
import java.awt.FlowLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; public class FileCountUI extends JFrame { public static void main(String args[]) { FileCountUI ui = new FileCountUI(); ui.showUI(); } public void showUI() { this.setTitle("FileCount"); this.setSize(350, 150); JLabel jl = new JLabel("指定目錄:"); JTextField jf = new JTextField(20); this.add(jl); this.add(jf); JButton but1 = new JButton("文件數(shù)目"); JButton but2 = new JButton("文件夾數(shù)目"); JButton but3 = new JButton("文件的總大小"); //加按鈕 this.add(but1); this.add(but2); this.add(but3); this.setLayout(new FlowLayout());//流體式布局 this.setLocationRelativeTo(null);//居中顯示 this.setResizable(false);//不可改變大小 this.setDefaultCloseOperation(EXIT_ON_CLOSE);//關(guān)閉界面時退出程序 this.setVisible(true);//顯示窗體 // 添加監(jiān)聽器 ActionListenerImpl l = new ActionListenerImpl(jf); but1.addActionListener(l); but2.addActionListener(l); but3.addActionListener(l); } }
?
?
?
3:監(jiān)聽器
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JTextField; public class ActionListenerImpl implements ActionListener{ private JTextField jf = new JTextField(); public ActionListenerImpl(JTextField jf){ this.jf = jf; } public void actionPerformed(ActionEvent e) { JButton but= (JButton)e.getSource();//獲取事件源 FileCount fc = new FileCount(); if(but.getText() == "文件數(shù)目"){ System.out.println("文件數(shù)目為:"+fc.fCount(jf.getText())); } if(but.getText() == "文件夾數(shù)目"){ System.out.println("文件夾的數(shù)目為:"+fc.Dircount(jf.getText())); } if(but.getText() == "文件的總大小"){ System.out.println(fc.fileLength(jf.getText())); } } }
?
?
界面如下
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
