你好提問者:
成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),槐蔭企業(yè)網(wǎng)站建設(shè),槐蔭品牌網(wǎng)站建設(shè),網(wǎng)站定制,槐蔭網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,槐蔭網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
如果解決了你的問題,請采納,若有疑問請追問,謝謝!
package?com.zyx.cn.baidu_test;
import?java.io.File;
public?class?GetListFile?{
public?static?void?main(String[]?args)?{
showFileName("C:\\Test");
}
private?static?void?showFileName(String?path)?{
File?file?=new?File(path);
if(file.exists()){//判斷文件是否存在
if(file.isDirectory()){//判斷file是否是文件夾
File[]?listFiles?=file.listFiles();//獲取文件下的子文件
//?目錄下文件
if(listFiles.length?==?0){
System.out.println("該文件夾下沒有文件");
}
for?(File?f?:?listFiles)?{
if(f.isDirectory()){//判斷file是否是文件夾
System.out.println("文件夾:"+f.getName());
showFileName(f.getAbsolutePath());//文件夾就繼續(xù)遍歷下的子文件
}else?if(f.isFile()){
System.out.println("文件:"+f.getName());
}else?{
System.err.println("未知錯(cuò)誤");
}
}
}
}
}
}
結(jié)果:
文件:Test.docx
文件:test.txt
文件:Wb.java
結(jié)果:
文件夾:Hello
文件:world.txt
文件:Test.docx
文件:test.txt
文件:Wb.java
給你一個(gè)。一共三個(gè)類。是個(gè)資源管理器的代碼
// FileList.java
package tl.exercise.swing;
import java.awt.Color;
import java.awt.Component;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.ListCellRenderer;
import javax.swing.ListModel;
import javax.swing.event.ListDataListener;
public class FileList
extends JList {
// PathNode theNode;
FileListModel dataModel;
static final long serialVersionUID = 10;
public FileList() {
dataModel = new FileListModel();
setModel(dataModel);
this.setCellRenderer(new MyCellRenderer());
}
public void fireTreeSelectionChanged(I_fileSystem node) {
// Vector files = node.getFiles();
// theNode = node;
dataModel.setNode(node);
updateUI();
}
}
class FileListModel implements ListModel {
FileList theList;
I_fileSystem node;
char fileType = I_fileSystem.ALL;
public void setNode(I_fileSystem node) {
this.node = node;
}
public Object getElementAt(int index) {
if (node != null) {
return ((I_fileSystem) node).getChild(fileType, index);
} else {
return null;
}
}
public int getSize() {
if (node != null) {
return ((I_fileSystem) node).getChildCount(fileType);
} else {
return 0;
}
}
public void addListDataListener(ListDataListener l) {
}
public void removeListDataListener(ListDataListener l) {
}
}
class MyCellRenderer extends JLabel implements ListCellRenderer {
public MyCellRenderer() {
setOpaque(true);
}
public Component getListCellRendererComponent(
JList list,
Object value,
int index,
boolean isSelected,
boolean cellHasFocus)
{
FolderNode node = (FolderNode) value;
setIcon(node.getIcon());
setText(value.toString());
setBackground(isSelected ? Color.BLUE.darker().darker() : Color.WHITE);
setForeground(isSelected ? Color.WHITE : Color.BLACK);
return this;
}
}
package tl.exercise.swing;
//JExplorer.java
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.border.BevelBorder;
public class JExplorer {
public static void main(String[] args) {
// JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(new UI(frame));
frame.pack();
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
int left = (screen.width - frame.getWidth()) / 2;
int top = (screen.height - frame.getHeight()) / 2;
frame.setLocation(left, top);
frame.setVisible(true);
}
}
class UI extends JPanel {
// implements I_menuHandler{
static final long serialVersionUID = 0l;
static int LEFT_WIDTH = 200;
static int RIGHT_WIDTH = 300;
static int WINDOW_HEIGHT = 300;
JFrame frame = null;
public UI(JFrame frame) {
// EmptyBorder eb = new EmptyBorder(1,1,1,1);
this.frame = frame;
setPreferredSize(new Dimension(800, 600));
setBorder(new BevelBorder(BevelBorder.LOWERED));
setLayout(new BorderLayout());
FileList list = new FileList();
FileTree tree = new FileTree(list);
tree.setDoubleBuffered(true);
list.setDoubleBuffered(true);
JScrollPane treeView = new JScrollPane(tree);
treeView.setPreferredSize(
new Dimension(LEFT_WIDTH, WINDOW_HEIGHT));
JScrollPane listView = new JScrollPane(list);
listView.setPreferredSize(
new Dimension(RIGHT_WIDTH, WINDOW_HEIGHT));
JSplitPane pane =
new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, treeView,
listView);
pane.setDividerLocation(300);
pane.setDividerSize(4);
// pane.setDoubleBuffered(true);
add(pane);
}
}
package tl.exercise.swing;
//FileTree.java
/***********************************************************
* Author: Jason
* email: tl21cen@hotmail.com
* CSDN blog:
***********************************************************/
import java.awt.Component;
import java.io.File;
import java.util.Vector;
import javax.swing.Icon;
import javax.swing.JTree;
import javax.swing.event.TreeExpansionEvent;
import javax.swing.event.TreeExpansionListener;
import javax.swing.event.TreeModelListener;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.filechooser.FileSystemView;
import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.tree.TreeModel;
import javax.swing.tree.TreePath;
public class FileTree extends JTree {
static final long serialVersionUID = 0;
private FileList theList;
public FileTree(FileList list) {
theList = list;
setModel(new FileSystemModel(new FolderNode()));
this.setCellRenderer(new FolderRenderer());
addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent tse) {
}
});
this.setSelectionRow(0);
}
public void fireValueChanged(TreeSelectionEvent tse) {
TreePath tp = tse.getNewLeadSelectionPath();
Object o = tp.getLastPathComponent();
// theList.fireTreeSelectionChanged((PathNode)o);
theList.fireTreeSelectionChanged((FolderNode) o);
}
public void fireTreeCollapsed(TreePath path) {
super.fireTreeCollapsed(path);
TreePath curpath = getSelectionPath();
if (path.isDescendant(curpath)) {
setSelectionPath(path);
}
}
public void fireTreeWillExpand(TreePath path) {
System.out.println("Path will expand is " + path);
}
public void fireTreeWillCollapse(TreePath path) {
System.out.println("Path will collapse is " + path);
}
class ExpansionListener implements TreeExpansionListener {
FileTree tree;
public ExpansionListener(FileTree ft) {
tree = ft;
}
public void treeCollapsed(TreeExpansionEvent tee) {
}
public void treeExpanded(TreeExpansionEvent tee) {
}
}
}
class FileSystemModel implements TreeModel {
I_fileSystem theRoot;
char fileType = I_fileSystem.DIRECTORY;
public FileSystemModel(I_fileSystem fs) {
theRoot = fs;
}
public Object getRoot() {
return theRoot;
}
public Object getChild(Object parent, int index) {
return ((I_fileSystem) parent).getChild(fileType, index);
}
public int getChildCount(Object parent) {
return ((I_fileSystem) parent).getChildCount(fileType);
}
public boolean isLeaf(Object node) {
return ((I_fileSystem) node).isLeaf(fileType);
}
public int getIndexOfChild(Object parent, Object child) {
return ((I_fileSystem) parent).getIndexOfChild(fileType, child);
}
public void valueForPathChanged(TreePath path, Object newValue) {
}
public void addTreeModelListener(TreeModelListener l) {
}
public void removeTreeModelListener(TreeModelListener l) {
}
}
interface I_fileSystem {
final public static char DIRECTORY = 'D';
final public static char FILE = 'F';
final public static char ALL = 'A';
public Icon getIcon();
public I_fileSystem getChild(char fileType, int index);
public int getChildCount(char fileType);
public boolean isLeaf(char fileType);
public int getIndexOfChild(char fileType, Object child);
}
/**
* A data model for a JTree. This model explorer windows file system directly.
*
* p
* Perhaps there is a fatal bug with this design. For speed, each of instances
* of this model contains file objects of subdirectory, up to now, there isn't
* any method to release them until program be end. I'm afraid that the memory
* would be full of if the file system is large enough and JVM memery size
* setted too small.
*
* p
* I won't pay more attention to solve it. it isn't goal of current a exercise.
*
* @author Jason
*/
class FolderNode implements I_fileSystem {
// private static FolderNode theRoot;
private static FileSystemView fsView;
private static boolean showHiden = true;;
private File theFile;
private VectorFile all = new VectorFile();
private VectorFile folder = new VectorFile();
/**
* set that whether apply hiden file.
*
* @param ifshow
*/
public void setShowHiden(boolean ifshow) {
showHiden = ifshow;
}
public Icon getIcon() {
return fsView.getSystemIcon(theFile);
}
public String toString() {
// return fsView.
return fsView.getSystemDisplayName(theFile);
}
/**
* create a root node. by default, it should be the DeskTop in window file
* system.
*
*/
public FolderNode() {
fsView = FileSystemView.getFileSystemView();
theFile = fsView.getHomeDirectory();
prepareChildren();
}
private void prepareChildren() {
File[] files = fsView.getFiles(theFile, showHiden);
for (int i = 0; i files.length; i++) {
all.add(files[i]);
if (files[i].isDirectory()
!files[i].toString().toLowerCase().endsWith(".lnk")) {
folder.add(files[i]);
}
}
}
private FolderNode(File file) {
theFile = file;
prepareChildren();
}
public FolderNode getChild(char fileType, int index) {
if (I_fileSystem.DIRECTORY == fileType) {
return new FolderNode(folder.get(index));
} else if (I_fileSystem.ALL == fileType) {
return new FolderNode(all.get(index));
} else if (I_fileSystem.FILE == fileType) {
return null;
} else {
return null;
}
}
public int getChildCount(char fileType) {
if (I_fileSystem.DIRECTORY == fileType) {
return folder.size();
} else if (I_fileSystem.ALL == fileType) {
return all.size();
} else if (I_fileSystem.FILE == fileType) {
return -1;
} else {
return -1;
}
}
public boolean isLeaf(char fileType) {
if (I_fileSystem.DIRECTORY == fileType) {
return folder.size() == 0;
} else if (I_fileSystem.ALL == fileType) {
return all.size() == 0;
} else if (I_fileSystem.FILE == fileType) {
return true;
} else {
return true;
}
}
public int getIndexOfChild(char fileType, Object child) {
if (child instanceof FolderNode) {
if (I_fileSystem.DIRECTORY == fileType) {
return folder.indexOf(((FolderNode) child).theFile);
} else if (I_fileSystem.ALL == fileType) {
return all.indexOf(((FolderNode) child).theFile);
} else if (I_fileSystem.FILE == fileType) {
return -1;
} else {
return -1;
}
} else {
return -1;
}
}
}
class FolderRenderer extends DefaultTreeCellRenderer {
private static final long serialVersionUID = 1L;
public Component getTreeCellRendererComponent(JTree tree, Object value,
boolean sel, boolean expanded, boolean leaf, int row,
boolean hasFocus) {
I_fileSystem node = (I_fileSystem) value;
Icon icon = node.getIcon();
setLeafIcon(icon);
setOpenIcon(icon);
setClosedIcon(icon);
return super.getTreeCellRendererComponent(tree, value, sel, expanded,
leaf, row, hasFocus);
}
}
/**
* 列出文件夾下的子文件夾名
* @param localRoot
* @throws content
*/
public static void list(String localRoot) throws Exception {
File[] fs = new File(localRoot).listFiles();
if ((fs == null) || (fs.length = 0)) {
System.out.println("空文件夾");
return;
}
for (File f : fs) {
if (f.isDirectory()) {
System.out.println("目錄:"+ f.getName());
}
}
}
建立個(gè)class然后見個(gè)main方法調(diào)用一下就可以了!
1、File類的createNewFile根據(jù)抽象路徑創(chuàng)建一個(gè)新的空文件,當(dāng)抽象路徑制定的文件存在時(shí),創(chuàng)建失敗
2、File類的mkdir方法根據(jù)抽象路徑創(chuàng)建目錄
3、File類的mkdirs方法根據(jù)抽象路徑創(chuàng)建目錄,包括創(chuàng)建必需但不存在的父目錄
4、File類的createTempFile方法創(chuàng)建臨時(shí)文件,可以制定臨時(shí)文件的文件名前綴、后綴及文件所在的目錄,如果不指定目錄,則存放在系統(tǒng)的臨時(shí)文件夾下。
5、除mkdirs方法外,以上方法在創(chuàng)建文件和目錄時(shí),必須保證目標(biāo)文件不存在,而且父目錄存在,否則會(huì)創(chuàng)建失敗
示例代碼如下:
package?book.io;
import?java.io.File;
import?java.io.IOException;
public?class?CreateFileUtil?{
public?static?boolean?createFile(String?destFileName)?{
File?file?=?new?File(destFileName);
if(file.exists())?{
System.out.println("創(chuàng)建單個(gè)文件"?+?destFileName?+?"失敗,目標(biāo)文件已存在!");
return?false;
}
if?(destFileName.endsWith(File.separator))?{
System.out.println("創(chuàng)建單個(gè)文件"?+?destFileName?+?"失敗,目標(biāo)文件不能為目錄!");
return?false;
}
//判斷目標(biāo)文件所在的目錄是否存在
if(!file.getParentFile().exists())?{
//如果目標(biāo)文件所在的目錄不存在,則創(chuàng)建父目錄
System.out.println("目標(biāo)文件所在目錄不存在,準(zhǔn)備創(chuàng)建它!");
if(!file.getParentFile().mkdirs())?{
System.out.println("創(chuàng)建目標(biāo)文件所在目錄失??!");
return?false;
}
}
//創(chuàng)建目標(biāo)文件
try?{
if?(file.createNewFile())?{
System.out.println("創(chuàng)建單個(gè)文件"?+?destFileName?+?"成功!");
return?true;
}?else?{
System.out.println("創(chuàng)建單個(gè)文件"?+?destFileName?+?"失??!");
return?false;
}
}?catch?(IOException?e)?{
e.printStackTrace();
System.out.println("創(chuàng)建單個(gè)文件"?+?destFileName?+?"失??!"?+?e.getMessage());
return?false;
}
}
public?static?boolean?createDir(String?destDirName)?{
File?dir?=?new?File(destDirName);
if?(dir.exists())?{
System.out.println("創(chuàng)建目錄"?+?destDirName?+?"失敗,目標(biāo)目錄已經(jīng)存在");
return?false;
}
if?(!destDirName.endsWith(File.separator))?{
destDirName?=?destDirName?+?File.separator;
}
//創(chuàng)建目錄
if?(dir.mkdirs())?{
System.out.println("創(chuàng)建目錄"?+?destDirName?+?"成功!");
return?true;
}?else?{
System.out.println("創(chuàng)建目錄"?+?destDirName?+?"失?。?);
return?false;
}
}
public?static?String?createTempFile(String?prefix,?String?suffix,?String?dirName)?{
File?tempFile?=?null;
if?(dirName?==?null)?{
try{
//在默認(rèn)文件夾下創(chuàng)建臨時(shí)文件
tempFile?=?File.createTempFile(prefix,?suffix);
//返回臨時(shí)文件的路徑
return?tempFile.getCanonicalPath();
}?catch?(IOException?e)?{
e.printStackTrace();
System.out.println("創(chuàng)建臨時(shí)文件失??!"?+?e.getMessage());
return?null;
}
}?else?{
File?dir?=?new?File(dirName);
//如果臨時(shí)文件所在目錄不存在,首先創(chuàng)建
if?(!dir.exists())?{
if?(!CreateFileUtil.createDir(dirName))?{
System.out.println("創(chuàng)建臨時(shí)文件失敗,不能創(chuàng)建臨時(shí)文件所在的目錄!");
return?null;
}
}
try?{
//在指定目錄下創(chuàng)建臨時(shí)文件
tempFile?=?File.createTempFile(prefix,?suffix,?dir);
return?tempFile.getCanonicalPath();
}?catch?(IOException?e)?{
e.printStackTrace();
System.out.println("創(chuàng)建臨時(shí)文件失?。??+?e.getMessage());
return?null;
}
}
}
public?static?void?main(String[]?args)?{
//創(chuàng)建目錄
String?dirName?=?"D:/work/temp/temp0/temp1";
CreateFileUtil.createDir(dirName);
//創(chuàng)建文件
String?fileName?=?dirName?+?"/temp2/tempFile.txt";
CreateFileUtil.createFile(fileName);
//創(chuàng)建臨時(shí)文件
String?prefix?=?"temp";
String?suffix?=?".txt";
for?(int?i?=?0;?i??10;?i++)?{
System.out.println("創(chuàng)建了臨時(shí)文件:"
+?CreateFileUtil.createTempFile(prefix,?suffix,?dirName));
}
//在默認(rèn)目錄下創(chuàng)建臨時(shí)文件
for?(int?i?=?0;?i??10;?i++)?{
System.out.println("在默認(rèn)目錄下創(chuàng)建了臨時(shí)文件:"
+?CreateFileUtil.createTempFile(prefix,?suffix,?null));
}
}
}
輸出結(jié)果:
創(chuàng)建目錄D:/work/temp/temp0/temp1成功!
目標(biāo)文件所在目錄不存在,準(zhǔn)備創(chuàng)建它!
創(chuàng)建單個(gè)文件D:/work/temp/temp0/temp1/temp2/tempFile.txt成功!
創(chuàng)建了臨時(shí)文件:D:work emp emp0 emp1 emp5171.txt
創(chuàng)建了臨時(shí)文件:D:work emp emp0 emp1 emp5172.txt
創(chuàng)建了臨時(shí)文件:D:work emp emp0 emp1 emp5173.txt
創(chuàng)建了臨時(shí)文件:D:work emp emp0 emp1 emp5174.txt
創(chuàng)建了臨時(shí)文件:D:work emp emp0 emp1 emp5175.txt
創(chuàng)建了臨時(shí)文件:D:work emp emp0 emp1 emp5176.txt
創(chuàng)建了臨時(shí)文件:D:work emp emp0 emp1 emp5177.txt
創(chuàng)建了臨時(shí)文件:D:work emp emp0 emp1 emp5178.txt
創(chuàng)建了臨時(shí)文件:D:work emp emp0 emp1 emp5179.txt
創(chuàng)建了臨時(shí)文件:D:work emp emp0 emp1 emp5180.txt
在默認(rèn)目錄下創(chuàng)建了臨時(shí)文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5181.txt
在默認(rèn)目錄下創(chuàng)建了臨時(shí)文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5182.txt
在默認(rèn)目錄下創(chuàng)建了臨時(shí)文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5183.txt
在默認(rèn)目錄下創(chuàng)建了臨時(shí)文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5184.txt
在默認(rèn)目錄下創(chuàng)建了臨時(shí)文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5185.txt
在默認(rèn)目錄下創(chuàng)建了臨時(shí)文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5186.txt
在默認(rèn)目錄下創(chuàng)建了臨時(shí)文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5187.txt
在默認(rèn)目錄下創(chuàng)建了臨時(shí)文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5188.txt
在默認(rèn)目錄下創(chuàng)建了臨時(shí)文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5189.txt
在默認(rèn)目錄下創(chuàng)建了臨時(shí)文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5190.txt
File類里面有兩個(gè)方法可以實(shí)現(xiàn):\x0d\x0a一個(gè)是mkdir():創(chuàng)建此抽象路徑名指定的目錄。\x0d\x0a另外一個(gè)是mkdirs(): 創(chuàng)建此抽象路徑名指定的目錄,包括所有必需但不存在的父目錄。\x0d\x0a\x0d\x0a比如你想在A文件夾創(chuàng)建一個(gè)B文件夾,并在B文件夾下創(chuàng)建c和D文件夾,可以用下面的代碼實(shí)現(xiàn):\x0d\x0a\x0d\x0aimport java.io.File;\x0d\x0a\x0d\x0apublic class Test {\x0d\x0a public static void main(String args[]) {\x0d\x0a File file = new File("D:\\A\\B\\C");\x0d\x0a file.mkdirs();\x0d\x0a \x0d\x0a file = new File("D:\\A\\B\\D");\x0d\x0a file.mkdir();\x0d\x0a }\x0d\x0a}
貼上正確代碼:你的代碼本來沒有什么問題的,但是只能夠通過DOS下去運(yùn)行,如果要在eclipse這些工具運(yùn)行只能在arguments里面輸入?yún)?shù),謝謝采納
import java.io.*;
import java.util.Scanner;
public class Exceptle13_1 {
public void newFolder(String newfolder) {
try {
String filepath = newfolder;
File myPath = new File(filepath);
if (!myPath.exists()) {
myPath.mkdir();
}
} catch (Exception e) {
System.out.println("新建目錄存在");
e.printStackTrace();
}
}
public static void main(String[] args) {
String mynewpath = new Scanner(System.in).next();
System.out.println(mynewpath);
Exceptle13_1 createNewFolder = new Exceptle13_1();
createNewFolder.newFolder(mynewpath);
}
}