当前位置:首页 » 文件管理 » java取ftp文件大小

java取ftp文件大小

发布时间: 2022-10-09 02:15:49

‘壹’ 如何获取ftp服务器下指定文件的大小

//////获取ftp服务器上指定文件夹的文件列表(包含文件大小)//////////////////publicDictionaryGetFTPList(stringServerIP,stringUSERID,stringPassWord,stringpath){Dictionarydic=newDictionary();if(path==null)path="";FtpWebRequestreqFtp;try{reqFtp=(FtpWebRequest)FtpWebRequest.Create(newUri("ftp://"+ServerIP+"/"+path));reqFtp.KeepAlive=false;reqFtp.UseBinary=true;//指定ftp数据传输类型为二进制reqFtp.Credentials=newNetworkCredential(USERID,PassWord);//设置于ftp通讯的凭据reqFtp.Method=WebRequestMethods.Ftp.ListDirectoryDetails;//指定操作方式WebResponseresponse=reqFtp.GetResponse();//获取一个FTP响应StreamReaderreader=newStreamReader(response.GetResponseStream(),Encoding.GetEncoding("GB2312"));//读取响应流stringline=reader.ReadLine();while(line!=null){if(line!="."&&line!=".."){intend=line.LastIndexOf('');intstart=line.IndexOf("");stringfilename=line.Substring(end+1);if(filename.Contains(".")){line=line.Replace(filename,"");dic.Add(filename.Trim(),int.Parse(line.Substring(start).Trim()));}}line=reader.ReadLine();}}catch(Exceptionex){Console.WriteLine(ex.Message);}returndic;}文件夹或者某一文件都适用

‘贰’ 如何获取上传到ftp服务端的文件大小

可以用原始指令 size [path]filename 如果文件存在 返回文件长度 否则返回5xx 失败

‘叁’ 用java怎么判断FTP上的文件大小改变了

日志目录:
已经架设了一个IIS下的FTP服务器,应该如何查看连接日志?
答:利用IIS架设的FTP服务器不能实时看到连接的具体情况,不过可以在C:\Winnt\system32\logfiles目录中查看到连接上FTP服务器的IP地址、时间等日志信息。

如何开启日志:
在默认FTP站点属性对话框中,切换到“FTP站点”标签页,一定要确保“启用日志记录”选项被选中,这样就可以在“事件查看器”中查看FTP日志记录了。

我感觉,这种方法也不是实时的,你只是将轮询文件变成了轮询日志,一样的感觉。

你如果想变成实时的,就是说文件大小一发生改变就通知你。我想到的办法是这样的。

你再做一个系统,这个系统可以较大频率的去轮询日志或者文件,因为这个系统可以架设在别的机器上,所以不会影响你系统的性能。然后在你系统中建立一个webservice,提供下载那个文件的服务,当那个系统发现更改时调用你的webservice,你就可以下载了。

我觉得这只是一种折中的办法,而且也比较费事,如果没有实时的要求,还是定时轮询的好。

PS:
实话说不知道你为什么要检验文件的大小,有时内容改变不一定大小会变得。

你可以记录文件上一次的修改时间。然后当这个发生改变时再取就是了。

‘肆’ 看了一段java代码是从FTP上下载文件,ftpClient.setBufferSize()这个是什么用处,要怎么使用它

缓冲区大小,等从ftp下载的数据存储到缓冲区,等缓冲区满了,进行磁盘读写。

‘伍’ java从FTP上下载文件大小大概10M左右,ftpClient.setBufferSize(1024)要设置多大的呢

几k到1m 这个是临时的缓冲

‘陆’ java做一个FTP下载器,怎么获取服务器上的文件及文件夹,以及他们的属性,如文件名,时间,大小

在FTP中有FTPClient和FTPFile两个类,里边提供了相应的方法!你可以去试一下!

‘柒’ 如何获取ftp服务器下指定文件的大小

调用格式: 〈整数型〉 对象.取目录列表 ([文本型 欲列出的文件],[文本型变量/变量数组 存放文件名的数组变量],[整数型变量/变量数组 存放文件属性的数组变量],[长整数型变量/变量数组 存放文件尺寸的数组变量],[日期时间型变量/变量数组 存放文件时间的数组变量]) - 网络传送支持库->FTP辅助对象
英文名称:FtpGetDirList
返回FTP服务器上指定目录内的所有匹配文件和子目录信息。成功返回被找到的文件和子目录的数目,失败返回 -1失败的原因有可能是FTP服务器的目录结构暂时不被支持。本命令为初级对象成员命令。
参数<1>的名称为“欲列出的文件”,类型为“文本型(text)”,可以被省略。可以包含路径,可以使用多字符 (*) 和单字符 (?) 通配符来指定多重文件及目录。
参数<2>的名称为“存放文件名的数组变量”,类型为“文本型(text)”,可以被省略,提供参数数据时只能提供变量及变量数组。提供参数数据时只能提供变量数组。在命令执行完毕后,本变量数组内被顺序填入所找到的匹配文件和子目录名称。变量数组内原有数据被全部销毁,变量数组的维数被自动调整为所找到的文件数目。
参数<3>的名称为“存放文件属性的数组变量”,类型为“整数型(int)”,可以被省略,提供参数数据时只能提供变量及变量数组。当前不被支持,留做以后扩展。
参数<4>的名称为“存放文件尺寸的数组变量”,类型为“长整数型(int64)”,可以被省略,提供参数数据时只能提供变量及变量数组。提供参数数据时只能提供变量数组。在命令执行完毕后,本变量数组内被顺序填入所找到的匹配文件的尺寸,并与文件名数组成员一一对应。
参数<5>的名称为“存放文件时间的数组变量”,类型为“日期时间型(date)”,可以被省略,提供参数数据时只能提供变量及变量数组。提供参数数据时只能提供变量数组。在命令执行完毕后,本变量数组内被顺序填入所找到的匹配文件的最后修改时间,并与文件名数组成员一一对应。变量数组内原有数据被全部销毁,变量数组的维数被自动调整为所找到的文件数目。

‘捌’ 如何用java获取网络文件的大小

你好,这边有一个示例代码,希望对你有所帮助。示例中的urlString,你可以下载之后看看是否跟打印信息大小一致。我这边是一致的。

p:所导入的包都是java.net下面的。

main方法中 直接调用这个函数即可。

staticintgetNetWorkFile(){
StringurlString="https://img-blog.csdn.net/20180323154952670?watermark/2/text/==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70";
intlength=0;
URLurl;
try{
url=newURL(urlString);
HttpURLConnectionurlcon=(HttpURLConnection)url.openConnection();//打开连接
//根据响应获取文件大小
length=urlcon.getContentLength();
urlcon.disconnect();//关闭连接
}catch(Exceptione){
e.printStackTrace();
}
System.out.println(length);
returnlength;
}

‘玖’ 用java怎么获取ftp上的文件

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)
{

}
}
}望采纳,谢谢。

‘拾’ java ftp上传5G以上大文件,怎么做

java上传可以使用common-fileupload上传组件的。common-fileupload是jakarta项目组开发的一个功能很强大的上传文件组件下面先介绍上传文件到服务器(多文件上传):import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.util.regex.*;
import org.apache.commons.fileupload.*;
public class upload extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GB2312";
//Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out=response.getWriter();
try {
DiskFileUpload fu = new DiskFileUpload();
// 设置允许用户上传文件大小,单位:字节,这里设为2m
fu.setSizeMax(2*1024*1024);
// 设置最多只允许在内存中存储的数据,单位:字节
fu.setSizeThreshold(4096);
// 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录
fu.setRepositoryPath("c:\\windows\\temp");
//开始读取上传信息
List fileItems = fu.parseRequest(request);
// 依次处理每个上传的文件
Iterator iter = fileItems.iterator();//正则匹配,过滤路径取文件名
String regExp=".+\\\\(.+)$";//过滤掉的文件类型
String[] errorType={".exe",".com",".cgi",".asp"};
Pattern p = Pattern.compile(regExp);
while (iter.hasNext()) {
FileItem item = (FileItem)iter.next();
//忽略其他不是文件域的所有表单信息
if (!item.isFormField()) {
String name = item.getName();
long size = item.getSize();
if((name==null||name.equals("")) && size==0)
continue;
Matcher m = p.matcher(name);
boolean result = m.find();
if (result){
for (int temp=0;temp if (m.group(1).endsWith(errorType[temp])){
throw new IOException(name+": wrong type");
}
}
try{//保存上传的文件到指定的目录//在下文中上传文件至数据库时,将对这里改写
item.write(new File("d:\\" + m.group(1))); out.print(name+" "+size+"
");
}
catch(Exception e){
out.println(e);
} }
else
{
throw new IOException("fail to upload");
}
}
}
}
catch (IOException e){
out.println(e);
}
catch (FileUploadException e){
out.println(e);
}

}
}

热点内容
湖南回收服务器主板云主机 发布:2024-10-08 06:12:59 浏览:807
psv视频脚本 发布:2024-10-08 06:12:13 浏览:420
文件夹菜单栏 发布:2024-10-08 05:46:23 浏览:491
压缩机选型手册 发布:2024-10-08 05:24:37 浏览:621
java主机名 发布:2024-10-08 05:12:55 浏览:118
华意压缩待遇 发布:2024-10-08 05:04:07 浏览:466
jsp上传图片存到数据库 发布:2024-10-08 05:04:06 浏览:74
分卷压缩解压速度 发布:2024-10-08 04:45:16 浏览:847
冰雪单职业辅助哪个好安卓 发布:2024-10-08 04:40:06 浏览:663
iqz3哪个配置好一点 发布:2024-10-08 04:34:07 浏览:762