一個文件里不但有文件還有文件夾所以代碼如下
先定義一個方法然後在main方法里調用
public void getFileName(File f){
if(f.isFile()){
System.out.println(f.getName());
}else{
List<File> l=f.listFile();
for(File file:l){
file.getFileName();
}
}
}
Ⅱ JAVA遍歷一個文件夾中的所有文件---(遞歸)
public void traverseFolder2(String path) {
File file = new File(path);
if (file.exists()) {
File[] files = file.listFiles();
if (null == files || files.length == 0) {
System.out.println("文件夾是空的!");
return;
} else {
for (File file2 : files) {
if (file2.isDirectory()) {
System.out.println("文件夾:" + file2.getAbsolutePath());
traverseFolder2(file2.getAbsolutePath());
} else {
System.out.println("文件:" + file2.getAbsolutePath());
}
}
}
} else {
System.out.println("文件不存在!");
}
}
(2)javasftp遍歷當前文件夾擴展閱讀
public void traverseFolder1(String path) {
int fileNum = 0, folderNum = 0;
File file = new File(path);
if (file.exists()) {
LinkedList<File> list = new LinkedList<File>();
File[] files = file.listFiles();
for (File file2 : files) {
if (file2.isDirectory()) {
System.out.println("文件夾:" + file2.getAbsolutePath());
list.add(file2);
foldeNum++;
} else {
System.out.println("文件:" + file2.getAbsolutePath());
fileNum++;
}
}
File temp_file;
while (!list.isEmpty()) {
temp_file = list.removeFirst();
files = temp_file.listFiles();
for (File file2 : files) {
if (file2.isDirectory()) {
System.out.println("文件夾:" + file2.getAbsolutePath());
list.add(file2);
folderNum++;
} else {
System.out.println("文件:" + file2.getAbsolutePath());
fileNum++;
}
}
}
} else {
System.out.println("文件不存在!");
}
System.out.println("文件夾共有:" + folderNum + ",文件共有:" + fileNum);
}
Ⅲ java怎麼實現SFTP上傳文件夾,包括整個目錄
遍歷文件夾,挨個上傳
Ⅳ 在java中如何遍歷某個路徑下的所有文件夾和文件
首先,我們先來遍歷一下D盤根目錄下所有的子文件:public
static
void
fileList()
{
File
file=new
File("d:/");
File[]
files
=
file.listFiles();
if
(files
!=
null)
{
for
(File
f
:
files)
{
System.out.println(f.getPath());
}
}
}對此,我們肯定不滿足,我們需要遍歷D盤下所有的文件和文件夾,而不是根目錄下的文件夾,這個時候我們需要使用到遞歸:public
static
void
fileList(File
file)
{
File[]
files
=
file.listFiles();
if
(files
!=
null)
{
for
(File
f
:
files)
{
System.out.println(f.getPath());
fileList(f);
}
}
}然後在主函數中調用:public
static
void
main(String[]
args)
{
File
file=new
File("d:/");
fileList(file);
}結果是不是能令你滿意呢?顯然,輸出的都是全路徑,我們可以對我們的遞歸函數做如下改進:
public
static
void
fileList(File
file,int
node)
{
node++;
File[]
files
=
file.listFiles();
if
(files
!=
null)
{
for
(File
f
:
files)
{
for(int
i=0;i<node;i++){
if(i==node-1){
System.out.print("├");
}
else{
System.out.print("
");
}
}
System.out.println(f.getName());
fileList(f,node);
}
}
}然後再次在主函數中調用:public
static
void
main(String[]
args)
{
File
file=new
File("d:/");
fileList(file,0);
}得到的結果是一個類似樹狀的結構,如果你對此還不滿意,可以嘗試給JTree上添加節點,可以做到和資源管理器中一樣的結構。
Ⅳ java中遍歷文件夾
import java.io.File;
public class Test {
public static void main(String[] args) throws Exception {
//遞歸顯示C盤下所有文件夾及其中文件
File root = new File("c:");
showAllFiles(root);
}
final static void showAllFiles(File dir) throws Exception{
File[] fs = dir.listFiles();
for(int i=0; i<fs.length; i++){
System.out.println(fs[i].getAbsolutePath());
if(fs[i].isDirectory()){
try{
showAllFiles(fs[i]);
}catch(Exception e){}
}
}
}
}
打字不易,如滿意,望採納。
Ⅵ java遍歷文件夾
主要應用遞歸演算法
/**
*
*/
package com.dianziermu.io;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
* 遍歷文件夾及其下面的所有文件夾,遞歸
*
* @author 點子二木
* @date 2009-6-10
* @version 1.0
*/
@SuppressWarnings("unchecked")
public class FolderIO {
static List<File> gblFoldList = new ArrayList();
/**
* @param args
*/
public static void main(String[] args) {
String path = "c:\\Program Files";// 將要搜索目錄路徑
System.out.println("獲取"+path + "目錄下所有文件夾,正在載入......");
readFolder(path);
printFolder();
}
/**
* 獲取文件對象
*
* @param path
*/
private static void readFolder(String path) {
File dir = new File(path);// 建立代表Sub目錄的File對象,並得到它的一個引用
if (dir.exists()) {// 檢查目錄是否存在
File[] dirList = dir.listFiles();// 獲取該目錄下所有文件和文件夾
for (int index = 0; index < dirList.length; index++) {
if (dirList[index].isDirectory()) {// 如果是文件夾
// System.out.println(dirList[index]);
gblFoldList.add(dirList[index]);
readFolder(dirList[index].getPath());// 注意:此處遞歸
}
}
} else {
System.out.println("該文件夾不存在");
}
}
/**
* 列印文件夾對象
*/
private static void printFolder() {
for (int index = 0; index < gblFoldList.size(); index++) {
System.out.println(gblFoldList.get(index));
}
}
}
Ⅶ JAVA 中在一個函數中遍歷文件夾裡面的所有文件,獲取他們的文件名,怎麼把這些文件名存到一個數組中。
你那個type沒看出有啥用,給你改了
import java.io.File;
import java.util.Vector;
public class A {
public static void recursion(String root, Vector<String> vecFile) {
File file = new File(root);
File[] subFile = file.listFiles();
for (int i = 0; i < subFile.length; i++) {
if (subFile[i].isDirectory()) {
recursion(subFile[i].getAbsolutePath(), vecFile);
} else {
String filename = subFile[i].getName();
vecFile.add(filename);
}
}
}
public static void main(String[] args) {
Vector<String> vecFile = new Vector<String>();
recursion("E:/A", vecFile);
for (String fileName : vecFile) {
System.out.println(fileName);
}
}
}
=================
文件名都給你打出來了,你還想咋處理????
=================
得不到,文件名只不過是一個字元串,沒有任何實際意義,除非得到文件名的時候得到文件大小。我給你改了下,Vector里放的是File而不是文件名了,你想幹啥都行了
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Vector;
public class A {
public static void recursion(String root, Vector<File> vecFile) {
File file = new File(root);
File[] subFile = file.listFiles();
for (int i = 0; i < subFile.length; i++) {
if (subFile[i].isDirectory()) {
recursion(subFile[i].getAbsolutePath(), vecFile);
} else {
vecFile.add(subFile[i]);
}
}
}
public static void main(String[] args) throws FileNotFoundException, IOException {
Vector<File> vecFile = new Vector<File>();
recursion("E:/A", vecFile);
for (File file : vecFile) {
System.out.println(file.getName() + " " + new FileInputStream(file).available());
}
}
}
Ⅷ java 怎麼遍歷ftp目錄下的所有目錄以及目錄下的文件名稱,取出文件的相對路徑
package com.hmilyld.exp;
import java.io.File;
public class ListFile {
private long[] count = new long[] { 0, 0 };
private File file;
private long[] listFile(String path) {
file = new File(path);
File[] f = file.listFiles();
for (int i = 0; i < f.length; i++) {
if (f[i].isDirectory()) {
count[0]++;
this.listFile(f[i].getPath());
} else {
count[1]++;
}
}
return count;
}
/**
* 得到指定路徑下的文件和文件夾數量
*
* @param path
* 要查看的路徑
* @return object[0]耗時(毫秒)<br>
* object[1]文件夾數量<br>
* object[2]文件數量
*/
public Object[] getFileCount(String path) {
long t = System.currentTimeMillis();
long[] count = this.listFile(path);
t = System.currentTimeMillis() - t;
Object[] o = new Object[] { Long.valueOf(t), Long.valueOf(count[0]),
Long.valueOf(count[1])};
return o;
}
public static void main(String[] args) {
ListFile l = new ListFile();
Object[] count = l.getFileCount("d:\\");
System.out.println(count[0]);
System.out.println(count[1]);
System.out.println(count[2]);
}
}
以前寫的一個獲取目錄下有多少文件和多少文件夾的代碼,
可以參考下.:)
Ⅸ java 怎麼遍歷 文件夾下的 文件
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class Traverse {
/** List游標 */
private static Integer sign = 0;
/** 初始路徑 */
private static String initPath = "E:\\";
/** 文件夾路徑 */
public static List<String> filePath = new ArrayList<String>();
public static void main(String[] args) {
/** 開始遍歷節點 */
System.out.println("---star---");
filePath.add(initPath);// 將首目錄放入遍歷隊列
while (sign < filePath.size()) {
getFilePath();
sign++;
}
System.out.println("---end---");
}
/**
* <p>
* 獲取所有節點路徑
*
* @return void
*/
public static void getFilePath() {
try {
File file = new File(filePath.get(sign));
File[] files = file.listFiles();
for (int i = 0; i < files.length; i++) {
boolean isFile = false;
isFile = files[i].isFile();
if (!isFile) {
filePath.add(files[i].getAbsolutePath());
System.out.println(files[i].getAbsolutePath());
}
}
} catch (Exception e) {
}
}
}
這個是遍歷給定目錄下的所有子目錄,並存放在list中,如果你要遍歷文件就從list中逐個取目錄再遍歷判斷是不是文件就行了!
Ⅹ java怎麼實現SFTP上傳文件夾,包括整個目錄
遍歷文件夾,挨個上傳