1.Linux下启动ftp
2.连接FTP
3.进入FTP目录
4.查看目录文件数
ls -l 普通文件就是以 - 开头,文件夹以 d 开头,grep 后面接正则表达式:^- 以 - 开头的匹配。
扩展资料:
1.查看当前目录下的文件数量(不包含子目录中的文件):
ls -l|grep "^-"| wc -l
2. 查看当前目录下的文件数量(包含子目录中的文件):
ls -lR|grep "^-"| wc -l
3.查看当前目录下的文件夹目录个数,(不包含子目录中的目录):
ls -l|grep "^d"| wc -l
4.查询当前路径下的指定前缀名的目录下的所有文件数量 例如:统计所有以“20161124”开头的目录下的全部文件数量:
ls -lR 20161124*/|grep "^-"| wc -l
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条)