转载于蓝森林--自由软件
import java.io.*;
/**
* @author Redhacker douguoqiang1980@.com
* @since 2006-3-26
*/
public class FileOperate {
public FileOperate() {
}
/**
* 新建目录
* @param folderPath String 如 c:/fqf
* @return boolean
*/
public void newFolder(String folderPath) {
try {
String filePath = folderPath;
filePath = filePath.toString();
java.io.File myFilePath = new java.io.File(filePath);
if (!myFilePath.exists()) {
myFilePath.mkdir();
}
}
catch (Exception e) {
System.out.println("新建目录操作出错");
e.printStackTrace();
}
}
/**
* 新建文件
* @param filePathAndName String 文件路径及名称 如c:/fqf.txt
* @param fileContent String 文件内容
* @return boolean
*/
public void newFile(String filePathAndName, String fileContent) {
try {
String filePath = filePathAndName;
filePath = filePath.toString();
File myFilePath = new File(filePath);
if (!myFilePath.exists()) {
myFilePath.createNewFile();
}
FileWriter resultFile = new FileWriter(myFilePath);
PrintWriter myFile = new PrintWriter(resultFile);
String strContent = fileContent;
myFile.println(strContent);
resultFile.close();
}
catch (Exception e) {
System.out.println("新建目录操作出错");
e.printStackTrace();
}
}
/**
* 删除文件
* @param filePathAndName String 文件路径及名称 如c:/fqf.txt
* @param fileContent String
* @return boolean
*/
public void delFile(String filePathAndName) {
try {
String filePath = filePathAndName;
filePath = filePath.toString();
java.io.File myDelFile = new java.io.File(filePath);
myDelFile.delete();
}
catch (Exception e) {
System.out.println("删除文件操作出错");
e.printStackTrace();
}
}
/**
* 删除文件夹
* @param filePathAndName String 文件夹路径及名称 如c:/fqf
* @param fileContent String
* @return boolean
*/
public void delFolder(String folderPath) {
try {
delAllFile(folderPath);
String filePath = folderPath;
filePath = filePath.toString();
java.io.File myFilePath = new java.io.File(filePath);
myFilePath.delete();
}
catch (Exception e) {
System.out.println("删除文件夹操作出错");
e.printStackTrace();
}
}
/**
* 删除文件夹里面的所有文件
* @param path String 文件夹路径 如 c:/fqf
*/
public void delAllFile(String path) {
File file = new File(path);
if (!file.exists()) {
return;
}
if (!file.isDirectory()) {
return;
}
String[] tempList = file.list();
File temp = null;
for (int i = 0; i < tempList.length; i++) {
if (path.endsWith(File.separator)) {
temp = new File(path + tempList[i]);
}
else {
temp = new File(path + File.separator + tempList[i]);
}
if (temp.isFile()) {
temp.delete();
}
if (temp.isDirectory()) {
delAllFile(path+"/"+ tempList[i]);//先删除文件夹里面的文件
delFolder(path+"/"+ tempList[i]);//再删除空文件夹
}
}
}
/**
* 复制单个文件
* @param oldPath String 原文件路径 如:c:/fqf.txt
* @param newPath String 复制后路径 如:f:/fqf.txt
* @return boolean
*/
public void copyFile(String oldPath, String newPath) {
try {
int bytesum = 0;
int byteread = 0;
File oldfile = new File(oldPath);
if (oldfile.exists()) { //文件存在时
InputStream inStream = new FileInputStream(oldPath); //读入原文件
FileOutputStream fs = new FileOutputStream(newPath);
byte[] buffer = new byte[1444];
//int length;
while ( (byteread = inStream.read(buffer)) != -1) {
bytesum += byteread; //字节数 文件大小
System.out.println(bytesum);
fs.write(buffer, 0, byteread);
}
inStream.close();
}
}
catch (Exception e) {
System.out.println("复制单个文件操作出错");
e.printStackTrace();
}
}
/**
* 复制整个文件夹内容
* @param oldPath String 原文件路径 如:c:/fqf
* @param newPath String 复制后路径 如:f:/fqf/ff
* @return boolean
*/
public void copyFolder(String oldPath, String newPath) {
try {
(new File(newPath)).mkdirs(); //如果文件夹不存在 则建立新文件夹
File a=new File(oldPath);
String[] file=a.list();
File temp=null;
for (int i = 0; i < file.length; i++) {
if(oldPath.endsWith(File.separator)){
temp=new File(oldPath+file[i]);
}
else{
temp=new File(oldPath+File.separator+file[i]);
}
if(temp.isFile()){
FileInputStream input = new FileInputStream(temp);
FileOutputStream output = new FileOutputStream(newPath + "/" +
(temp.getName()).toString());
byte[] b = new byte[1024 * 5];
int len;
while ( (len = input.read(b)) != -1) {
output.write(b, 0, len);
}
output.flush();
output.close();
input.close();
}
if(temp.isDirectory()){//如果是子文件夹
copyFolder(oldPath+"/"+file[i],newPath+"/"+file[i]);
}
}
}
catch (Exception e) {
System.out.println("复制整个文件夹内容操作出错");
e.printStackTrace();
}
}
/**
* 移动文件到指定目录
* @param oldPath String 如:c:/fqf.txt
* @param newPath String 如:d:/fqf.txt
*/
public void moveFile(String oldPath, String newPath) {
copyFile(oldPath, newPath);
delFile(oldPath);
}
/**
* 移动文件到指定目录
* @param oldPath String 如:c:/fqf.txt
* @param newPath String 如:d:/fqf.txt
*/
public void moveFolder(String oldPath, String newPath) {
copyFolder(oldPath, newPath);
delFolder(oldPath);
}
public void renameFolder(String srcPath,String dsPath) {//自己添加的:)
File srcFile = new File(srcPath);
srcFile.renameTo(new File(dsPath));
}
}
分享到:
相关推荐
本话题聚焦于JSP如何实现对图片的增删改查操作,并特别强调了删除图片文件夹下文件的能力。以下是对这个主题的详细讲解: 首先,图片的“增”操作,即上传图片,通常涉及到文件上传功能。在JSP中,我们可以使用`...
- 对每个文件或子目录进行判断,如果是目录则添加到 `directory` 集合中,如果是文件则添加到 `file` 集合中。 3. **传递数据至JSP页面**: - 将 `file` 和 `directory` 集合作为属性传递给JSP页面; - 在JSP...
4. **安全性**:验证文件类型,防止恶意文件上传,同时对文件名进行转义,避免路径遍历攻击。 5. **进度反馈**:通过WebSocket或轮询等方式实时更新上传进度,提供良好的用户反馈。 **总结:** "jsp 大文件/文件夹...
### JSP选择文件夹路径的方法及实现 #### 概述 在JSP(JavaServer Pages)环境下,有时候我们需要让用户能够选择文件夹,并获取该文件夹下的所有文件列表。这种功能通常用于文件上传、文件管理等场景。本文将详细...
在JSP中删除文件夹及其内容不仅涉及文件系统的操作,还可能包括数据库的更新以及异常处理,确保整个过程的健壮性和安全性。通过理解并应用上述代码和逻辑,开发者可以有效地管理Web应用程序中的文件资源,提高应用的...
在多文件上传中,JSP页面会提交表单到一个Servlet,Servlet负责接收文件并进行处理。 3. **Multipart解析器**: 文件上传涉及到二进制数据,不能直接通过HTTP的普通请求来发送。因此,我们需要使用Multipart解析器...
在实际应用中,你需要对用户输入进行适当的检查和清理,以防止恶意操作。 总结起来,通过这两个JSP页面,我们实现了用户交互式的文件夹创建功能。"mdrd.jsp"页面负责收集用户输入,而"mkdir.jsp"页面则负责处理请求...
JSP文件操作涉及了Java基础的IO操作,理解并熟练运用这些方法能够帮助开发者在JSP中实现文件和目录的创建、检查与删除。同时,正确配置和使用虚拟目录对于大型项目来说尤为重要,它可以帮助我们更好地组织资源,提高...
4. **删除文件/文件夹**:用户可以选择不再需要的文件或文件夹进行删除操作,但通常会有一个确认步骤以防止误删。 5. **重命名**:允许用户更改文件或文件夹的名称。 6. **权限管理**:高级的文件管理器可能包含...
6. **异常处理**:文件操作中可能会出现IOException,应妥善处理,避免程序中断。 7. **MultipartFile**:在Spring框架中,可以使用MultipartFile接口处理文件上传,提供更便捷的API。 总的来说,JSP文件操作包括...
一个典型的JSP文件管理系统可能采用MVC(Model-View-Controller)架构,其中: - **Model**:处理业务逻辑和数据操作,如读写文件、验证用户操作等。 - **View**:负责展示用户界面,如文件列表、上传/下载进度等。...
在MyEclipse这样的集成开发环境中,开发和调试JSP文件上传下载功能非常便捷。"updowntest"可能是一个项目或文件夹名称,里面可能包含了实现这些功能的JSP页面、Servlet类以及相关的配置文件。 总结来说,这个示例...
- 尽管示例代码没有包含遍历文件夹内容的部分,但实际应用中,前端可能需要递归遍历选择的文件夹,获取所有文件的路径,然后逐个调用`sendFileToServer`函数进行上传。 7. **安全性考虑**: - 需要注意安全问题,...
在开发JSP文件管理系统时,还需要关注安全性问题,如防止SQL注入、XSS攻击,以及确保文件上传的安全性,避免恶意文件上传。 综上所述,"jsp做的文件管理系统"是一个基于JSP技术构建,集成了多种功能和安全措施的Web...
如果你只需要查看JSP文件中的源代码,而无需执行它们,可以使用文本编辑器进行查看。常见的文本编辑器如记事本、Notepad++等均可用于这一目的。 1. **定位JSP文件**:首先找到存储JSP文件的文件夹。 2. **尝试打开*...
在"jsp文件管理器"中,JSP页面作为用户界面,接收用户的操作请求,并将其转化为后端处理的Java逻辑。JSP通过内置的Servlet引擎编译成Servlet运行,实现了服务器端的数据处理和响应生成。 在"jsp文件管理器"的描述中...
**JSP文件管理系统**是一种基于JavaServer Pages(JSP)技术构建的系统,主要用于管理和操作文件,特别是对于那些需要远程访问和控制文件的企业或个人来说,这种系统具有很高的实用价值。JSP是一种服务器端的脚本...