當前位置:首頁 » 文件管理 » 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);
}

}
}

熱點內容
db2資料庫別名 發布:2024-10-08 08:19:02 瀏覽:239
如何更換安卓系統時鍾 發布:2024-10-08 08:12:54 瀏覽:396
電腦創建伺服器軟體 發布:2024-10-08 08:12:47 瀏覽:476
如何防微信惡意找回密碼 發布:2024-10-08 08:01:58 瀏覽:813
aspnet存儲過程分頁 發布:2024-10-08 08:01:47 瀏覽:460
王者安卓怎麼拍高清視頻教程 發布:2024-10-08 07:57:04 瀏覽:263
酒吧燈光編程 發布:2024-10-08 07:52:42 瀏覽:8
別克英朗買15哪個配置好 發布:2024-10-08 07:43:38 瀏覽:237
android安裝sdk 發布:2024-10-08 07:42:41 瀏覽:329
qq空間音樂緩存 發布:2024-10-08 07:05:49 瀏覽:738