⑴ 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);
}
}
}
希望能对您有所帮助!