java删除上传的文件
㈠ 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块功能
定时侦测目录的文件数/目录空间
给一个阀值,当目录文件数、空间到怎样的值 ,按文件的创建时间排序删除最老的文档,删除数量可以给定一个百分比,当然你可以做一些过滤排除(比如创建时间到现在时间差少于半小时的不删除)
㈥ 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):下面是测试代码: