当前位置:首页 » 文件管理 » java删除上传的文件

java删除上传的文件

发布时间: 2022-11-26 20:50:02

java删除项目中的文件代码

FIle file = new File("/image/123.jpg");
if (file.exists()){
file.delete();
}

使用File对象操作删除,会判断是否存在,如存在就删了。

如果想找路径,使用File类的getAbsolutePath()方/法就能得到/绝/对/路/径/的字符串表示。
例如上面的对、象file,使用
String str = file.getAbsolutePath();
System.out.println(str);
你在/控/制/台co/ns/ole/窗口就能看到了。

㈡ Java判断服务器的文件是否存在如果存在,在上传的时候删除文件并完成文件上传

File file= new File("路径+文件名称");
if(file.exists()){
file.delete();
}
fi file.createNewFile();

㈢ JAVA 怎么删除上传到硬盘的附件

import java.io.File;

/**
*
* 2007-11-27
* 删除文件或目录
* @author 计春旭 E-mail: [email protected]
* @version 创建时间:Jun 16, 2009 9:50:44 AM
* @see java.lang.Class
* @since JDK1.5
*/

public class DeleteFileUtil {
/**
* 删除文件,可以是单个文件或文件夹
* @param fileName 待删除的文件名
* @return 文件删除成功返回true,否则返回false
*/
public static boolean delete(String fileName){
File file = new File(fileName);
if(!file.exists()){
System.out.println("删除文件失败:"+fileName+"文件不存在");
return false;
}else{
if(file.isFile()){

return deleteFile(fileName);
}else{
return deleteDirectory(fileName);
}
}
}

/**
* 删除单个文件
* @param fileName 被删除文件的文件名
* @return 单个文件删除成功返回true,否则返回false
*/
public static boolean deleteFile(String fileName){
File file = new File(fileName);
if(file.isFile() && file.exists()){
file.delete();
System.out.println("删除单个文件"+fileName+"成功!");
return true;
}else{
System.out.println("删除单个文件"+fileName+"失败!");
return false;
}
}

/**
* 删除目录(文件夹)以及目录下的文件
* @param dir 被删除目录的文件路径
* @return 目录删除成功返回true,否则返回false
*/
public static boolean deleteDirectory(String dir){
//如果dir不以文件分隔符结尾,自动添加文件分隔符
if(!dir.endsWith(File.separator)){
dir = dir+File.separator;
}
File dirFile = new File(dir);
//如果dir对应的文件不存在,或者不是一个目录,则退出
if(!dirFile.exists() || !dirFile.isDirectory()){
System.out.println("删除目录失败"+dir+"目录不存在!");
return false;
}
boolean flag = true;
//删除文件夹下的所有文件(包括子目录)
File[] files = dirFile.listFiles();
for(int i=0;i<files.length;i++){
//删除子文件
if(files[i].isFile()){
flag = deleteFile(files[i].getAbsolutePath());
if(!flag){
break;
}
}
//删除子目录
else{
flag = deleteDirectory(files[i].getAbsolutePath());
if(!flag){
break;
}
}
}

if(!flag){
System.out.println("删除目录失败");
return false;
}

//删除当前目录
if(dirFile.delete()){
System.out.println("删除目录"+dir+"成功!");
return true;
}else{
System.out.println("删除目录"+dir+"失败!");
return false;
}
}
//删除文件夹
//param folderPath 文件夹完整绝对路径

public static 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) {
e.printStackTrace();
}
}

//删除指定文件夹下所有文件
//param path 文件夹完整绝对路径
public static boolean delAllFile(String path) {
boolean flag = false;
File file = new File(path);
if (!file.exists()) {
return flag;
}
if (!file.isDirectory()) {
return flag;
}
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]);//再删除空文件夹
flag = true;
}
}
return flag;
}

public static void main(String[] args) {
//String fileName = "g:/temp/xwz.txt";
//DeleteFileUtil.deleteFile(fileName);
String fileDir = "D:\\apache-tomcat-6.0.18\\webapps\\cyfy\\upload\\disk\\1245117448156\\JavaScript486.rar";
//DeleteFileUtil.deleteDirectory(fileDir);
DeleteFileUtil.delete(fileDir);
DeleteFileUtil t = new DeleteFileUtil();
delFolder("c:/bb");
System.out.println("deleted");

}
}

㈣ java删除上传到oracle数据库的图片,删除记录的同时删除数据库本地图片,如何删除记录的同时定位到图片

1、明白一些概览:
1)上传的图片并没有真正的存储在oracle数据库里,orcale数据库里其实存储的是图片的路径。
2)从浏览器上传图片到后端Action,action调用相应文件存储逻辑(文件存储系统)由文件存储系统完成图片的存储,并返回文件的路径。最后将这个路径保存到oracle数据库(这个部分可以很简单也可以很复杂视实际情况而定)。
2、相关删除逻辑,通过数据库里的文件路径找到实际的存储位置执行删除。删除成功后再删除数据库里相关记录。

㈤ java上传文件时用户不提交表单,上传的文件怎么删除

给个建议,临时目录的文件其实可以异步删除 ,

就是说不需要依赖用户是否提交表单这个行为。

整个服务里需要有那么一个线程或者进程管理这个目录

这个线程需要有2块功能

  1. 定时侦测目录的文件数/目录空间

  2. 给一个阀值,当目录文件数、空间到怎样的值 ,按文件的创建时间排序删除最老的文档,删除数量可以给定一个百分比,当然你可以做一些过滤排除(比如创建时间到现在时间差少于半小时的不删除)

㈥ java中上传完文件删除不了的问题

我不知道你上传成功了为什么还要删除?
file类好像有个方法。delete();
这个应该是删除某个文件的吧,

㈦ Java 程序做文件(excle,txt)上传,然后在删除的问题

我觉得一楼说的对,我刚才试了下,就是这个原因,你可以参看我写的一个程序:

========================Code begin ==========================
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

/**
* @author limingatcn
* @time Jan 22, 2009 10:11:59 AM
* @version 1.0
*/
public class TestDelete {

public void readInfoFromFile() {
// 先声明以备用
File file = new File("c:\\test.txt");
FileInputStream fis = null;
byte[] b = null;
int i = 0;

// 处理
try {
fis = new FileInputStream(file);
// byte数组不要越界
b = new byte[123456];
while (fis.available() > 0) {
i += fis.read(b);
}
String str = new String(b, 0, i);
System.out.println(str);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
// 执行删除操作
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
file.delete();
System.out.println("The file was removed.");
}

}

/**
* @param args
*/
public static void main(String[] args) {
new TestDelete().readInfoFromFile();
}

}

========================Code end ============================

在finally中要执行 关闭你所打开读流的对象 的操作,

在这个程序中如果没有finally中的fis.close()
test.txt就出现你说的删除不掉的情况
结合这个程序你再试试。

㈧ java 删除文件内容

程序整体思路如下:
JAVA删除文件内容,需要将文件内容读出来,然后再写回去,肯定需要用io处理。
任何程序的IO操作都逃不了Open与Close,如果打开了一个文件,进程将会锁住这个文件,不让其进程或者线程写入他,一旦读取完文件之后,需要Close掉他,这个是一套标准来着。
如果要实现这种功能,最好的方法是使用一个临时的内存去保存读取文件的数据,然后重新进行操作,覆盖掉读取的文件。

㈨ 如何删除javaweb工程中的上传文件

要看你删除的是哪里的,数据的,还是服务器的?

㈩ JAVA怎么实现删除远程ftp服务器上的某一文件

一个JAVA 实现FTP功能的代码,包括了服务器的设置模块,并包括有上传文件至FTP的通用方法、下载文件的通用方法以及删除文件、在ftp服务器上传文件夹、检测文件夹是否存在等,里面的有些代码对编写JAVA文件上传或许有参考价值,

(1):Java FTP主文件代码:

package ftpDemo;

import java.io.DataOutputStream;

import java.io.InputStream;

import java.io.OutputStream;

import sun.net.TelnetInputStream;

import sun.net.TelnetOutputStream;

import sun.net.ftp.FtpClient;

public class ftpUtil {

// 上传文件至FTP通用方法

public static void upLoadFileFtp(KmConfig kmConfig,InputStream is, String fileName){

try {

String ftpHost = kmConfig.getFtpHost();

int port = kmConfig.getFtpPort();

String userName = kmConfig.getFtpUser();

String passWord = kmConfig.getFtpPassword();

String path = kmConfig.getFtpPath();

FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost为FTP服务器的IP地址,port为FTP服务器的登陆端口,ftpHost为String型,port为int型。

ftpClient.login(userName, passWord);// userName、passWord分别为FTP服务器的登陆用户名和密码

ftpClient.binary();

ftpClient.cd(path);// path为FTP服务器上保存上传文件的路径。

TelnetOutputStream telnetOut = ftpClient.put(fileName);// fileName为上传的文件名

DataOutputStream dataOut = new DataOutputStream(telnetOut);

byte buffer[] = new byte[ * ];

int count = ;

while ((count = is.read(buffer)) != -) {

dataOut.write(buffer, , count);

}

telnetOut.close();

dataOut.close();

ftpClient.closeServer();

} catch (Exception e) {

System.out.println("上传文件失败!请检查系统FTP设置,并确认FTP服务启动");

}

}

// 删除文件至FTP通用方法

public static void deleteFileFtp(KmConfig kmConfig,String fileName){

try {

String ftpHost = kmConfig.getFtpHost();

int port = kmConfig.getFtpPort();

String userName = kmConfig.getFtpUser();

String passWord = kmConfig.getFtpPassword();

String path = kmConfig.getFtpPath();

FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost为FTP服务器的IP地址,port为FTP服务器的登陆端口,ftpHost为String型,port为int型。

ftpClient.login(userName, passWord);// userName、passWord分别为FTP服务器的登陆用户名和密码

ftpClient.binary();

ftpClient.cd(path);// path为FTP服务器上保存上传文件的路径。

try {

ftpClient.sendServer("dele " + fileName + " ");

} catch (Exception e) {

System.out.println("删除文件失败!请检查系统FTP设置,并确认FTP服务启动");

}

ftpClient.closeServer();

} catch (Exception e) {

System.out.println("删除文件失败!");

}

}

// 下载ftp文件

public static void downloadFileFtp(KmConfig kmConfig,String fileName, String clientFileName, OutputStream outputStream){

try {

String ftpHost = kmConfig.getFtpHost();

int port = kmConfig.getFtpPort();

String userName = kmConfig.getFtpUser();

String passWord = kmConfig.getFtpPassword();

String path = kmConfig.getFtpPath();

FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost为FTP服务器的IP地址,port为FTP服务器的登陆端口,ftpHost为String型,port为int型。

ftpClient.login(userName, passWord);// userName、passWord分别为FTP服务器的登陆用户名和密码

ftpClient.binary();

ftpClient.cd(path);// path为FTP服务器上保存上传文件的路径。

try {

TelnetInputStream in = ftpClient.get(fileName);

byte[] bytes = new byte[];

int cnt=;

while ((cnt=in.read(bytes,,bytes.length)) != -) {

outputStream.write(bytes, , cnt);

}

outputStream.close();

in.close();

} catch (Exception e) {

ftpClient.closeServer();

e.printStackTrace();

}

ftpClient.closeServer();

} catch (Exception e) {

System.out.println("下载文件失败!请检查系统FTP设置,并确认FTP服务启动");

}

}

//在ftp服务器上传件文件夹

public boolean createDir(String path,FtpClient ftpClient) throws Exception{

//进入到home文件夹下

ftpClient.cd("/home");

//创建远程文件夹

//远程命令包括

//USER PORT RETR ALLO DELE SITE XMKD CDUP FEAT<br>

// PASS PASV STOR REST CWD STAT RMD XCUP OPTS<br>

// ACCT TYPE APPE RNFR XCWD HELP XRMD STOU AUTH<br>

// REIN STRU SMNT RNTO LIST NOOP PWD SIZE PBSZ<br>

// QUIT MODE SYST ABOR NLST MKD XPWD MDTM PROT<br>

// 在服务器上执行命令,如果用sendServer来执行远程命令(不能执行本地FTP命令)的话,所有FTP命令都要加上/r/n<br>

// ftpclient.sendServer("XMKD /test/bb/r/n"); //执行服务器上的FTP命令<br>

// ftpclient.readServerResponse一定要在sendServer后调用<br>

// nameList("/test")获取指目录下的文件列表<br>

// XMKD建立目录,当目录存在的情况下再次创建目录时报错<br>

// XRMD删除目录<br>

// DELE删除文件<br>

//通过远程命令 穿件一个files文件夹

ftpClient.sendServer("MKD "+ path + " ");

//这个方法必须在 这两个方法中间调用 否则 命令不管用

ftpClient.binary();

ftpClient.readServerResponse();

return false;

}

/**

* 检查文件夹是否存在

* @param dir

* @param ftpClient

* @return

*/

public boolean isDirExist(String dir, FtpClient ftpClient) {

try {

ftpClient.cd(dir);

} catch (Exception e) {

return false;

}

return true;

}

}

(2):KmConfig.java代码如下:定义FTP服务器参数,包括登录的用户名密码之类的。

package ftpDemo;

public class KmConfig {

//主机ip

private String FtpHost = "";

//端口号

private int FtpPort;

//ftp用户名

private String FtpUser = "";

//ftp密码

private String FtpPassword = "";

//ftp中的目录

private String FtpPath = "";

public String getFtpHost() {

return FtpHost;

}

public void setFtpHost(String ftpHost) {

FtpHost = ftpHost;

}

public int getFtpPort() {

return FtpPort;

}

public void setFtpPort(int ftpPort) {

FtpPort = ftpPort;

}

public String getFtpUser() {

return FtpUser;

}

public void setFtpUser(String ftpUser) {

FtpUser = ftpUser;

}

public String getFtpPassword() {

return FtpPassword;

}

public void setFtpPassword(String ftpPassword) {

FtpPassword = ftpPassword;

}

public String getFtpPath() {

return FtpPath;

}

public void setFtpPath(String ftpPath) {

FtpPath = ftpPath;

}

}

(3):下面是测试代码:

热点内容
c可以用来编译系统软件吗 发布:2024-10-05 16:22:26 浏览:17
U盘和存储器 发布:2024-10-05 16:22:04 浏览:896
cmdc语言 发布:2024-10-05 15:58:32 浏览:550
服务器怎么弄公网ip 发布:2024-10-05 15:57:02 浏览:640
设备配置在什么地方 发布:2024-10-05 15:44:59 浏览:249
matlab外部接口编程 发布:2024-10-05 15:36:58 浏览:365
C事件编程 发布:2024-10-05 15:15:43 浏览:639
一台服务器出现两IP 发布:2024-10-05 15:10:05 浏览:925
md5加密算法c 发布:2024-10-05 15:05:40 浏览:761
如何重设控制器密码 发布:2024-10-05 14:19:13 浏览:441