為了熟悉文件的基本操作,寫了一個文件計數器 .. 界面有些簡陋..
?
?
?
1: 文件計數的具體實現
import java.io.File;
import javax.swing.JOptionPane;
/**
* 指定路徑下文件夾和文件的數目及大小.
* @author d.s
*z
*/
public class FileCount {
/**
* 得到文件數目
*
* @param path
* :指定的路徑
* @return 文件個數
*/
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++) {
// 遞歸調用fCount方法
countF += fCount(f[i].getAbsolutePath());
}
}
} else {
JOptionPane.showMessageDialog(null, "統計文件數目的路徑錯誤!!!");
}
return countF;
}
/**
* 該路徑下的文件夾數目
*
* @param path指定的路徑
* @return 文件夾數目
*/
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, "統計文件夾的路徑錯誤!!!");
}
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: 計數器的一個簡單界面
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("文件數目");
JButton but2 = new JButton("文件夾數目");
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);//關閉界面時退出程序
this.setVisible(true);//顯示窗體
// 添加監聽器
ActionListenerImpl l = new ActionListenerImpl(jf);
but1.addActionListener(l);
but2.addActionListener(l);
but3.addActionListener(l);
}
}
?
?
?
3:監聽器
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() == "文件數目"){
System.out.println("文件數目為:"+fc.fCount(jf.getText()));
}
if(but.getText() == "文件夾數目"){
System.out.println("文件夾的數目為:"+fc.Dircount(jf.getText()));
}
if(but.getText() == "文件的總大小"){
System.out.println(fc.fileLength(jf.getText()));
}
}
}
?
?
界面如下
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

