*
* @param path
* @return
*/
public List getFileList(String path){
List list = new ArrayList()
DataInputStream dis
try {
dis = new DataInputStream(ftpClient.nameList(this.path + path))
String filename = ""
while((filename = dis.readLine()) != null){
list.add(filename)
}
} catch (IOException e) {
e.printStackTrace()
}
return list
}
我从这里拷来的 你不清楚看看里面 http://hi.baidu.com/yuanhotel/item/000b6334894d11f42784f4da
满意皮简码就采纳 谢谢
package com.hmilyld.expimport 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 = 0i <f.lengthi++) {
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])
}
}
以前轮迅写的一个获取目录下有多少文件和多少文件夹的漏桐谈代码,
可以参考下返碰.:)
public class FtpClientUtil {FtpClient ftpClient
private String server
private int port
private String userName
private String userPassword
public FtpClientUtil(String server,int port,String userName,String userPassword)
{
this.server=server
this.port=port
this.userName=userName
this.userPassword=userPassword
}
/**
* 链接到服务器
* @return
*/
public boolean open()
{
if(ftpClient!=null&&ftpClient.serverIsOpen())
return true
try
{
ftpClient= new FtpClient()
ftpClient.openServer(server,port)
ftpClient.login(userName, userPassword)
ftpClient.binary()
return true
}
catch(Exception e)
{
e.printStackTrace()
ftpClient=null
return false
}
}
public boolean cd(String dir){
boolean f = false
try {
ftpClient.cd(dir)
} catch (IOException e) {
Logs.error(e.toString())
return f
}
return true
}
/**
* 上传文件到FTP服务器
* @param localPathAndFileName 本地文件目录和文件名
* @param ftpFileName 上如升传后的文件名
* @param ftpDirectory FTP目录如:/path1/盯宏pathb2/,如果目录不存在回自动创建目录
* @throws Exception
*/
public boolean upload(String localDirectoryAndFileName,String ftpFileName,String ftpDirectory)throws Exception {
if(!open())
return false
FileInputStream is=null
TelnetOutputStream os=null
try
{
char ch = ' '
if (ftpDirectory.length() >0)
ch = ftpDirectory.charAt(ftpDirectory.length() - 1)
for (ch == '/凯橡册' || ch == '\\'ch = ftpDirectory.charAt(ftpDirectory.length() - 1))
ftpDirectory = ftpDirectory.substring(0, ftpDirectory.length() - 1)
int slashIndex = ftpDirectory.indexOf(47)
int backslashIndex = ftpDirectory.indexOf(92)
int index = slashIndex
String dirall = ftpDirectory
if (backslashIndex != -1 &&(index == -1 || index >backslashIndex))
index = backslashIndex
String directory = ""
while (index != -1) {
if (index >0) {
String dir = dirall.substring(0, index)
directory = directory + "/" + dir
ftpClient.sendServer("XMKD " + directory + "\r\n")
ftpClient.readServerResponse()
}
dirall = dirall.substring(index + 1)
slashIndex = dirall.indexOf(47)
backslashIndex = dirall.indexOf(92)
index = slashIndex
if (backslashIndex != -1 &&(index == -1 || index >backslashIndex))
index = backslashIndex
}
ftpClient.sendServer("XMKD " + ftpDirectory + "\r\n")
ftpClient.readServerResponse()
os = ftpClient.put(ftpDirectory + "/"
+ ftpFileName)
File file_in = new File(localDirectoryAndFileName)
is = new FileInputStream(file_in)
byte bytes[] = new byte[1024]
int i
while ((i = is.read(bytes)) != -1)
os.write(bytes, 0, i)
//清理垃圾
return true
}
catch(Exception e)
{
e.printStackTrace()
return false
}
finally
{
if (is != null)
is.close()
if (os != null)
os.close()
}
}
/**
* 从FTP服务器上下载文件并返回下载文件长度
* @param ftpDirectoryAndFileName
* @param localDirectoryAndFileName
* @return
* @throws Exception
*/
public long download(String ftpDirectoryAndFileName,String localDirectoryAndFileName)throws Exception
{
long result = 0
if(!open())
return result
TelnetInputStream is = null
FileOutputStream os = null
try
{
is = ftpClient.get(ftpDirectoryAndFileName)
java.io.File outfile = new java.io.File(localDirectoryAndFileName)
os = new FileOutputStream(outfile)
byte[] bytes = new byte[1024]
int c
while ((c = is.read(bytes)) != -1)
{
os.write(bytes, 0, c)
result = result + c
}
}
catch (Exception e)
{
throw e
}
finally
{
if (is != null)
is.close()
if (os != null)
os.close()
}
return result
}
/**
* 返回FTP目录下的文件列表
* @param ftpDirectory
* @return
*/
public List<String>getFileNameList(String ftpDirectory)
{
List<String>list = new ArrayList<String>()
if(!open())
return list
try
{
DataInputStream dis = new DataInputStream(ftpClient.nameList(ftpDirectory))
String filename = ""
while((filename=dis.readLine())!=null)
{
list.add(filename)
}
} catch (Exception e)
{
e.printStackTrace()
}
return list
}
/**
* 删除FTP上的文件
* @param ftpDirAndFileName
*/
public boolean deleteFile(String ftpDirAndFileName)
{
if(!open())
return false
ftpClient.sendServer("DELE "+ftpDirAndFileName+"\r\n")
return true
}
/**
* 删除FTP目录
* @param ftpDirectory
*/
public boolean deleteDirectory(String ftpDirectory)
{
if(!open())
return false
ftpClient.sendServer("XRMD "+ftpDirectory+"\r\n")
return true
}
/**
* 关闭链接
*/
public void close()
{
try
{
if(ftpClient!=null&&ftpClient.serverIsOpen())
ftpClient.closeServer()
}catch(Exception e)
{
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)