java子文件夾
1. 如何用java程序在當前目錄下創建一個子目錄
用java程序在當前目錄下創建一個子目錄的方法是利用File對象的mkdirs方法。
完整代碼如下:
// 獲取當前圖片的路徑
String path = createImages.getAbsolutePath() + "/Images";
//創建文件對象f,根據path路徑
File f = new File(path);
//如果當前不是一個目錄就進入if
if (!f.isDirectory()) {
boolean success = f.mkdirs(); //創建一個目錄
if (success) { //成功列印當前的路徑
System.out.println("Created path: " + f.getPath());
} else { //失敗的情況
System.out.println("Could not create path: " + f.getPath());
}
} else {
System.out.println("Path exists: " + f.getPath()); //子目錄已存在。
}
關於mkdir:
mkdir()創建此抽象路徑名稱指定的目錄(及只能創建一級的目錄,且需要存在父目錄),如果傳入的path是多級路徑,需要使用mkdirs()創建。
2. 用JAVA代碼查出硬碟上某一文件夾和各級子文件夾下所有文件
class
YourClass{
Vector<String>files;
private
static
void
list(File
parentFolder
){
File[]
subItems=parentFolder.listFiles();
for(File
file:subItems){
if(file.isFile()){
files.add(file.getAbsolutePath());
}
else{
list(file);
}
}
}
public
static
String[]
listAll(String
path){
files=new
Vector<String>();
list(new
File(path));
return
files.toArray(new
String[0]);
}
public
static
void
main(String[]
args){
//調用listAll(你的文件夾路徑)返回的就是所有子文件的
絕對路徑
數組,你想怎麼處理都可以了。
}
}
3. Java如何刪除文件夾下的子目錄及其包含的子文件
下面給你介紹Java刪除文件夾下的子目錄及其包含的子文件的方法:
package com.cn.test1;
import java.io.File;
public class DeleteAllFiles {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String filePath = "e:\\fq\\";
System.out.println("開始刪除文件");
File file = new File(filePath);
// deleteFile(file);
deleteAllFilesOfDir(file);
System.out.println("刪除成功!!");
}
//遞歸刪除文件夾(方法一)
public static void deleteFile(File file) {
if (file.exists()) {//判斷文件是否存在
if (file.isFile()) {//判斷是否是文件
file.delete();//刪除文件
} else if (file.isDirectory()) {//否則如果它是一個目錄
File[] files = file.listFiles();//聲明目錄下所有的文件 files[];
for (int i = 0;i < files.length;i ++) {//遍歷目錄下所有的文件
deleteFile(files[i]);//把每個文件用這個方法進行迭代
}
file.delete();//刪除文件夾
}
} else {
System.out.println("所刪除的文件不存在");
}
}
//方法二
public static void deleteAllFilesOfDir(File path) {
if (!path.exists())
return;
if (path.isFile()) {
path.delete();
return;
}
File[] files = path.listFiles();
for (int i = 0; i < files.length; i++) {
deleteAllFilesOfDir(files[i]);
}
path.delete();
}
}
4. java 怎麼沒有隻取得子文件夾的的功能呢
import java.io.FileFilter;
......
File parent=new File(".....");
......
File[] subFolders=parent.listFiles(new FileFilter(){
public boolean accept(File item){
return item.isDirectory();
}
});
//補充,確實如此。使用過濾類來區分文件和文件夾的話,需要額外調用函數的時間。還不如自己判斷速度快。這種方法只是用著結構清楚。
//據我所知現有API中沒有其它方法了。
5. java:怎樣顯示一個文件夾中所有的子文件夾(包括子文件夾的了文件夾的子文件夾……)和文件
//以下是一個李雲山所著《深入淺出Javac程序設計》給出的程序
,可以參考一下。
/**
* ClassName:File19_3
* Description:
* Copyright: Copyright (c) 2002
* Company:
* @author:Liyunshan
* @version 1.0
*/
import java.io.*;
public class File19_3
{
static void listPath(File path, int level)
{
if (level == 0) System.out.println(path);
File files[] = path.listFiles(); //獲得目錄下所有文件
for (int i = 0; i < files.length; i++)
{
for (int j = 0; j <= level; j++) System.out.print(" ");
System.out.println(files[i].getName());
if (files[i].isDirectory()) //用遞歸列出子目錄
{
listPath(files[i], (level + 1));
}
}
}
public static void main(String args[])
{
File dir = new File("Dir");
listPath(dir, 0);
}
}
//主要使用的是遞歸調用,層層獲取。
6. java如何取得文件夾下所有的子目錄
package e.chinasoft.wtf;
import java.io.File;
/**
* @author :wtf
* @version 創建時間:2018年3月5日 上午9:59:05
* 類說明:該類可以輸出指定路徑下所有的文件名(文件名和文件夾名)
* 指定一個路徑即可
*/
public class printURL {
public static void main(String[] args) {
//這是需要獲取的文件夾路徑 這里填寫你的文件路徑 注意 / 與
String path = "E:/";
getFile(path,0);
}
/*
* 函數名:getFile
* 作用:使用遞歸,輸出指定文件夾內的所有文件
* 參數:path:文件夾路徑 deep:表示文件的層次深度,控制前置空格的個數
* 前置空格縮進,顯示文件層次結構
*/
private static void getFile(String path,int deep){
// 獲得指定文件對象
File file = new File(path);
// 獲得該文件夾內的所有文件
File[] array = file.listFiles();
for(int i=0;i<array.length;i++)
{
if(array[i].isFile())//如果是文件
{
for (int j = 0; j < deep; j++)//輸出前置空格
System.out.print(" ");
// 只輸出文件名字
System.out.println( array[i].getName());
// 輸出當前文件的完整路徑
// System.out.println("#####" + array[i]);
// 同樣輸出當前文件的完整路徑 大家可以去掉注釋 測試一下
// System.out.println(array[i].getPath());
}
else if(array[i].isDirectory())//如果是文件夾
{
for (int j = 0; j < deep; j++)//輸出前置空格
System.out.print(" ");
System.out.println( array[i].getName());
//System.out.println(array[i].getPath());
//文件夾需要調用遞歸 ,深度+1
getFile(array[i].getPath(),deep+1);
}
}
}
}
7. 用java 編寫一個程序,在命令行中以樹狀結構展現特定的文件夾及其子文件(夾)!
import java.io.*;
class testfilelist {
public static void main(String[] args) {
String separator = File.separator;//與系統有關的默認名稱分隔符,出於方便考慮,它被表示為一個字元串。
String filename = "myfile.txt";//文件名
String directory = "mydir1" + separator + "mydir2"+ separator +"mydir3";//mydir1\mydir2\mydir3\myfile.txt
crate(directory,filename);//給出個方法創建文件 if--有就創建 else--就輸出文件名和大小
File f=new File("D:/My Documents/java12");//指定文件位置
System.out.println(f.getName());//列印在這個文件下的文件夾;
tree(f,1);//方法!進入子文件夾中 並列印子文件名
}
private static void tree(File f,int level) {
String preStr="";//縮進量
for(int i=0;i<level;i++) {
if(i==level-1)
preStr=preStr+"┗";
else
preStr=preStr+"*";//級別 - 代表這個目下下的子文件夾
}
File[] childs=f.listFiles();//返回一個抽象路徑名數組,這些路徑名表示此抽象路徑名所表示目錄中的文件
for(int i=0;i<childs.length;i++)
{
System.out.println(preStr+childs[i].getName());//列印子文件的名字
if(childs[i].isDirectory()) //測試此抽象路徑名表示的文件是否是一個目錄
{
tree(childs[i],level+1);
}//如果子目錄下還有子目錄,遞歸子目錄調用此方法
}
}
public static void crate(String di,String fn){
File f = new File(di, fn);
if (f.exists())//測試此抽象路徑名表示的文件或目錄是否存在
{
System.out.println("文件名:" + f.getAbsolutePath());
System.out.println("文件大小:" + f.length());
} else {
f.getParentFile().mkdirs();// 返回此抽象路徑名的父路徑名的抽象路徑名,如果此路徑名沒有指定父目錄,則返回 null .mkdirs()//創建此抽象路徑名指定的目錄
try {
f.createNewFile();//當且僅當不存在具有此抽象路徑名指定的名稱的文件時,原子地創建由此抽象路徑名指定的一個新的空文件
} catch (IOException e) {
e.printStackTrace();
}
}
}
} 應該滿足樓主的意思!嘿嘿
8. JAVA怎樣刪除文件及子文件
遞歸程序如下:
import java.io.File;
public class DeleteFile {
public static void main(String[] args) {
//路徑名自己要小心寫哦,一次性就刪除完了
String path="F:\\html";
File f=new File(path);
try {
deleteFile(f);
} catch (Exception e) {
e.printStackTrace();
System.exit(0);
}
System.out.println("==刪除完成==");
}
public static void deleteFile(File f) throws Exception{
if(f.isFile()){
if(f.canWrite()){
f.delete();
}else{
throw new Exception("文件:"+f.getName()+"只讀,無法刪除,請手動刪除");
}
}else{
File[] fs = f.listFiles();
if(fs.length!=0)
{
for(int i=0;i<fs.length;i++){
deleteFile(fs[i]);
}
}
f.delete();
}
}
}
9. 如何在java裡面創建兩個子目錄
試試:
public static void main(String[] args) throws IOException {
String separator = File.separator;
String T = "A"+separator+"B"+","+"A"+separator+"E";
System.out.println(T);
String[] paths = T.split(",");
for(int i=0;i<paths.length;i++){
System.out.println("**"+"E:\\"+paths[i]);
File file = new File ("E:\\"+paths[i]);
file.mkdirs();//我原來用mkdir(),說不到路徑。原因:這里要同時生成A 和B兩個文件夾
//原來E:\下沒有A,如果已經有A文件夾,則用mkdir();
}
}
10. java遍歷指定文件夾下的所有子文件夾怎麼操作
import java.io.File ;
import java.io.IOException ;
public class FileDemo11{
public static void main(String args[]){
File my = new File("d:" + File.separator) ;// 操作路徑,可以有外部參數決定的
print(my) ;
}
public static void print(File file){// 遞歸調用
if(file!=null){// 判斷對象是否為空
if(file.isDirectory()){// 如果是目錄
File f[] = file.listFiles() ;// 列出全部的文件
if(f!=null){// 判斷此目錄能否列出
for(int i=0;i<f.length;i++){
print(f[i]) ;// 因為給的路徑有可能是目錄,所以,繼續判斷
}
}
}else{
System.out.println(file) ;// 輸出路徑
}
}
}
};