我怎樣才能得到文件的大小在Java中,如果我有這樣的一個文件的相對路徑:獲取文件大小,文件
String s = "/documents/19/21704/file2.pdf/0929c695-d023-49d7-a8ff-65ccea46bebc"
我想有兩個diferent字符串:
String[] separatedPath = s.split("/");
List<String> wordList = Arrays.asList(separatedPath);
String ret = "/" + wordList.get(1) + "/" + wordList.get(2) + "/" + wordList.get(3)+ "/" + wordList.get(4);
s = ret;
在這種情況下s =「/ documents/19/21704/file2.pdf」;
在第二種情況下S = 「/文件/21704分之19/ file2.pdf/0929c695-d023-49d7-a8ff-65ccea46bebc」
我嘗試:
File file1 = new File(s);
long filesize = file1.length();
並用:
String filePath = new File(s).toURI().getPath();
File file2 = new File(filePath);
long filesize2 = file1.length();
,並與(如果問題出在不提供完整路徑):
String absolutePath = FileUtil.getAbsolutePath(file1);
File file3 = new File(absolutePath);
long filesize3 = file3.length();
byte[] bytes1=FileUtil.getBytes(file1);
byte[] bytes2=FileUtil.getBytes(file2);
byte[] bytes3=FileUtil.getBytes(file3);
我一直在調試該的filesizes在所有情況下都爲0
也許是值得注意獲得該文件1和文件2的三個屬性和file3的總是:
filePath: which is always null;
path: "/documents/19/21704/liferay-portlet-development.pdf"
prefixLength: 1
因爲我也是用的Liferay我也嘗試過他們的效用。
long compId = article.getCompanyId();
long contentLength = DLStoreUtil.getFileSize(compId, CompanyConstants.SYSTEM, s);
我也應該注意到,在我.xhtml觀點我可以訪問文件:
<a target="_blank"
href="/documents/19/21704/file2.pdf/0929c695-d023-49d7-a8ff-65ccea46bebc">
file2.pdf
</a>
全文在新窗口中打開。所以它存儲在我的服務器上。
我在這裏做錯了什麼?我不能從bean中獲取文件大小?
任何答案將不勝感激。
我在這裏做錯了什麼?
我想'/ documents/19/21704/file2.pdf'是一個文件,其餘部分是一個部分裏面沒有另一個文件。 –
你正在linux/unix上運行嗎? – giorashc
那麼..服務器上'/documents/19/21704/file2.pdf'的路徑是什麼?這是一個萬維網路徑,所以你需要制定出一個基於它的服務器路徑。根據你提供的信息,它可以是任何東西,所以你需要告訴我們你的文件系統上的路徑是什麼(例如相對於你正在執行的代碼)。 – eis