⑴ java代碼實現從路徑字元串中獲取文件名稱
這道題主要就是利用了String類的split()方法,進行多次調用,已經幫你實現了,代碼如下:
public class Test{
public static void main(String[] args){
String str = "c:/win/good/aaa.txt;d:/win/good/bbb.txt;c:/win/cccc.txt;";
//得到路徑數組
String[] fileRoot = str.split(";");
String[] fileName = null;
for(int i = 0;i < fileRoot.length;i++){
if(fileRoot[i] != null){
fileName = fileRoot[i].split("/");
//得到最終需要的文件名
System.out.println (fileName[fileName.length-1]);
}
}
}
}
⑵ javaweb項目java後台獲取前台js上傳文件的路徑
在Java Web項目中,若要從前端JavaScript接收並處理上傳的文件,可以通過Servlet來實現這一功能。具體來說,可以使用Apache Commons FileUpload庫來解析上傳文件。以下是使用DiskFileItemFactory和ServletFileUpload來讀取上傳文件路徑的代碼示例,我在項目中已經成功應用過該代碼。
首先,我們創建一個DiskFileItemFactory實例,並設置其大小閾值和臨時文件存儲路徑。接著,通過該工廠實例化上傳組件ServletFileUpload,並設置最大文件大小限制。
接下來,我們調用ServletFileUpload的parseRequest方法來解析請求中的文件列表。如果解析結果為空或為空列表,則拋出異常,表示沒有文件被上傳。否則,我們遍歷這些文件項,獲取每個文件的名稱,然後將其保存到指定的目錄。
具體代碼如下:
DiskFileItemFactory difif = new DiskFileItemFactory();
difif.setSizeThreshold(32 * 1024);
difif.setRepository(new File(tmpDir));
ServletFileUpload sfu = new ServletFileUpload(difif);
sfu.setSizeMax(MAX_SIZE);
List file_list = sfu.parseRequest(request);
if (file_list == null || file_list.size() == 0) {
throw new Exception("沒有文件被上傳");
} else {
File upLoadFile = null;
Iterator file_iterator = file_list.iterator();
// 獲取所有上傳的文件
while (file_iterator.hasNext()) {
FileItem file_item = (FileItem) file_iterator.next();
// 獲取上傳文件名
if (file_item.getContentType() == null) {
} else {
// 文件路徑
String path = file_item.getName();
String t_ext = path.substring(path.lastIndexOf(".") + 1);
// 開始保存文件
upLoadFile = new File(u_name);
file_item.write(upLoadFile);
}
}
}
通過這種方式,我們可以成功地從前端接收文件並保存到伺服器端。需要注意的是,上述代碼中的tmpDir和MAX_SIZE等變數需要根據實際情況進行設置。
總結來說,通過設置DiskFileItemFactory的大小閾值和臨時文件存儲路徑,並使用ServletFileUpload來解析請求中的文件列表,我們可以實現從前端JavaScript上傳文件到Java後台的功能。
⑶ java怎麼獲取一個目錄下的所有文件名
獲取一個目錄下的所有文件和目錄方法:
importjava.io.File;
publicclassFileTest{
publicstaticvoidmain(String[]args){
/**
*將目標目錄封裝成File對象。
*/
Filedir=newFile("/Users/zym/Desktop/Mac應用程序");
/**
*獲取目錄下的所有文件和文件夾
*/
String[]names=dir.list();
for(Stringname:names){
System.out.println(name);
}
}
}
通過文件過濾器獲取某個目錄下的文件,例如所有的 .txt、.doc文件。
過濾器:
importjava.io.File;
importjava.io.FilenameFilter;
{
@Override
publicbooleanaccept(Filedir,Stringname){
returnname.endsWith(".doc");
}
}
獲取某個目錄下的按照過濾器規則的所有文件:
importjava.io.File;
publicclassFileTest{
publicstaticvoidmain(String[]args){
/**
*將目標目錄封裝成File對象。
*/
Filedir=newFile("/Users/zym/Desktop/Mac應用程序");
/**
*通過過濾器獲取目錄下的所有的.doc文件
*/
String[]names=dir.list(newFilterByDoc());
for(Stringname:names){
System.out.println(name);
}
}
}
希望能對您有所幫助!