可以读取到服务器上某个文件夹下的【所有文件路径】吗

cdj93900595 2010-04-19 09:26:23
我用FCKeditor 上传了文件 图片等东西, 怎么样可以在后台管理实现文件管理呢,比如删除某个文件,先要得到完整路径名
...全文
254 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
from_null 2010-04-21
  • 打赏
  • 举报
回复
3楼的方法是需要传入路径的。
比如上传的文件存在项目中WEBROOT下面有个名字为upload的文件夹,获取全路径的方法是
String path = ServletActionContext.getRequest().getRealPath("upload");
path就是upload文件夹所在的绝对路径了。
如果上传时没有上传到WEBROOT下,而是指定到一个自定义的文件夹下,可以把该路径写在一个常量类里面。
~~~~~~~~~~~~
如果文件没有上传到本机上,而是上传到了另外一个专永的文件服务器上,就需要用FTP等方式来进行上传了。不过这时3楼的方法就不能用了。因为他只能应用服务器所在机器上的文件进行操作。
cdj93900595 2010-04-21
  • 打赏
  • 举报
回复
恩 谢谢
kurama_mail 2010-04-20
  • 打赏
  • 举报
回复
如果前后台都布置在同一机器发布可直接通过io来处理文件.如果非同一机器,可选择开启http服务和ftp服务来操作
bunrise 2010-04-20
  • 打赏
  • 举报
回复
package file;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.PrintWriter;

/**
* java.io.file工具
*
* @author xiaodong.lee
*/
public class FileUtils {

/**
* 新建目录
*
* @param folderPath
* @author xiaodong.lee 2009-8-23
*/
public void creatFolder(String folderPath) {
try {

File file = new File(folderPath);
if (!file.exists()) {
file.mkdirs();
}
} catch (Exception e) {
System.out.println("create folder failed!");
e.printStackTrace();
}
}

/**
* 新建文件
*
* @param filePath
* @param fileContext
* @author xiaodong.lee 2009-8-23
*/
public void creatFile(String filePath, String fileContext) {
try {

if (filePath != null && !"".equals(filePath)) {
String folder = filePath
.substring(0, filePath.lastIndexOf("/"));
creatFolder(folder);
}

File file = new File(filePath);
if (!file.exists()) {
file.createNewFile();
}
if (fileContext != null && !"".equals(fileContext)) {
FileWriter fileWriter = new FileWriter(file);
PrintWriter printWriter = new PrintWriter(fileWriter);
printWriter.println(fileContext);
fileWriter.close();
printWriter.close();
}

} catch (Exception e) {
System.out.println("create file failed!");
e.printStackTrace();
}
}

/**
* 删除文件
*
* @param filePath
* @author xiaodong.lee 2009-8-23
*/
public Boolean deleteFile(String filePath) {
File file = new File(filePath);
Boolean flag = false;
if (file.isFile()) {
flag = file.delete();
}
return flag;
}

/**
* 删除空文件夹
*
* @param folderPath
* @return
* @author xiaodong.lee 2009-8-23
*/
public Boolean deleteNullFolder(String folderPath) {

File file = new File(folderPath);
if (!file.isDirectory() || !file.exists()) {
System.out.println("路径不存在或者路径不是目录!");
return false;
}

File[] fileList = file.listFiles();
if (fileList.length > 0) {
return false;
}

file.delete();

return true;
}

/**
* 删除目录下所有目录
*
* @param folderPath
* @return
* @author xiaodong.lee 2009-8-23
*/
public Boolean deleteAllFolder(String folderPath) {

File file = new File(folderPath);
if (!file.isDirectory() || !file.exists()) {
return false;
}

File[] fileList = file.listFiles();

for (int i = 0; i < fileList.length; i++) {
if (fileList[i].isDirectory()) {
File fileSon = fileList[i];
// 遍历判断是否为空目录,不是空目录删除目录下文件或目录
if (!deleteNullFolder(fileSon.toString())) {
deleteAllFolder(fileSon.toString());
deleteAllfiles(fileSon.toString());
fileSon.delete();
} else {
fileSon.delete();
}
}
}

return true;
}

/**
* 删除目录下所有文件
*
* @param filePath
* @return
* @author xiaodong.lee 2009-8-23
*/
public Boolean deleteAllfiles(String filePath) {

File file = new File(filePath);
if (!file.isDirectory() || !file.exists()) {
return false;
}

File[] fileList = file.listFiles();

for (int i = 0; i < fileList.length; i++) {
if (!fileList[i].isDirectory()) {
File fileSon = fileList[i];
if (fileSon.isFile()) {
deleteFile(fileSon.toString());
}
}
}
return true;
}

/**
* 删除目录下所有文件和目录
*
* @param filePath
* @author xiaodong.lee 2009-8-23
*/
public void deleteAll(String filePath) {
deleteAllfiles(filePath);
deleteAllFolder(filePath);
}

/**
* 复制目录下单个文件
*
* @param oldPass
* @param newPath
* @return
* @author xiaodong.lee 2009-8-24
*/
public Boolean copyFile(String oldPath, String newPath) {
try {
File file = new File(oldPath);
if (file.isDirectory()) {
return false;
}

if (file.exists()) {
FileInputStream inputStream = new FileInputStream(file);
FileOutputStream outputStream = new FileOutputStream(newPath);
BufferedInputStream reader = new BufferedInputStream(
inputStream);
int len = inputStream.available();
byte[] buffer = new byte[len];

reader.read(buffer, 0, len);
outputStream.write(buffer);

inputStream.close();
outputStream.close();

reader.close();

}
} catch (Exception e) {
System.out.println("copy file failed!");
e.printStackTrace();
}
return true;
}

/**
* 复制目录下所有文件和目录
*
* @param oldPath
* @param newPath
* @author xiaodong.lee 2009-8-24
*/
@SuppressWarnings("static-access")
public Boolean copyAllFile(String oldPath, String newPath) {

File file = new File(oldPath);

if (!file.exists()) {
return false;
}

if (file.isFile()) {
copyFile(oldPath, newPath);
return false;
}

File[] fileList = file.listFiles();
File mkdir = new File(newPath);

if (!mkdir.exists()) {
mkdir.mkdirs();
}

for (int i = 0; i < fileList.length; i++) {
if (fileList[i].isDirectory()) {
copyAllFile(oldPath + fileList[i].separator
+ fileList[i].getName(), newPath
+ fileList[i].separator + fileList[i].getName());
} else {
copyFile(oldPath + fileList[i].separator
+ fileList[i].getName(), newPath
+ fileList[i].separator + fileList[i].getName());
}
}

return true;

}

}



别直接用了,研究下在用,很简单的
cdj93900595 2010-04-20
  • 打赏
  • 举报
回复
具体代码?
xxy8100 2010-04-19
  • 打赏
  • 举报
回复
java可以读取到

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧