java獲取臨時文件夾
1、File類的createNewFile根據抽象路徑創建一個新的空文件,當抽象路徑制定的文件存在時,創建失敗
2、File類的mkdir方法根據抽象路徑創建目錄
3、File類的mkdirs方法根據抽象路徑創建目錄,包括創建必需但不存在的父目錄
4、File類的createTempFile方法創建臨時文件,可以制定臨時文件的文件名前綴、後綴及文件所在的目錄,如果不指定目錄,則存放在系統的臨時文件夾下。
5、除mkdirs方法外,以上方法在創建文件和目錄時,必須保證目標文件不存在,而且父目錄存在,否則會創建失敗
示例代碼如下:
packagebook.io;
importjava.io.File;
importjava.io.IOException;
publicclassCreateFileUtil{
publicstaticbooleancreateFile(StringdestFileName){
Filefile=newFile(destFileName);
if(file.exists()){
System.out.println("創建單個文件"+destFileName+"失敗,目標文件已存在!");
returnfalse;
}
if(destFileName.endsWith(File.separator)){
System.out.println("創建單個文件"+destFileName+"失敗,目標文件不能為目錄!");
returnfalse;
}
//判斷目標文件所在的目錄是否存在
if(!file.getParentFile().exists()){
//如果目標文件所在的目錄不存在,則創建父目錄
System.out.println("目標文件所在目錄不存在,准備創建它!");
if(!file.getParentFile().mkdirs()){
System.out.println("創建目標文件所在目錄失敗!");
returnfalse;
}
}
//創建目標文件
try{
if(file.createNewFile()){
System.out.println("創建單個文件"+destFileName+"成功!");
returntrue;
}else{
System.out.println("創建單個文件"+destFileName+"失敗!");
returnfalse;
}
}catch(IOExceptione){
e.printStackTrace();
System.out.println("創建單個文件"+destFileName+"失敗!"+e.getMessage());
returnfalse;
}
}
publicstaticbooleancreateDir(StringdestDirName){
Filedir=newFile(destDirName);
if(dir.exists()){
System.out.println("創建目錄"+destDirName+"失敗,目標目錄已經存在");
returnfalse;
}
if(!destDirName.endsWith(File.separator)){
destDirName=destDirName+File.separator;
}
//創建目錄
if(dir.mkdirs()){
System.out.println("創建目錄"+destDirName+"成功!");
returntrue;
}else{
System.out.println("創建目錄"+destDirName+"失敗!");
returnfalse;
}
}
(Stringprefix,Stringsuffix,StringdirName){
FiletempFile=null;
if(dirName==null){
try{
//在默認文件夾下創建臨時文件
tempFile=File.createTempFile(prefix,suffix);
//返回臨時文件的路徑
returntempFile.getCanonicalPath();
}catch(IOExceptione){
e.printStackTrace();
System.out.println("創建臨時文件失敗!"+e.getMessage());
returnnull;
}
}else{
Filedir=newFile(dirName);
//如果臨時文件所在目錄不存在,首先創建
if(!dir.exists()){
if(!CreateFileUtil.createDir(dirName)){
System.out.println("創建臨時文件失敗,不能創建臨時文件所在的目錄!");
returnnull;
}
}
try{
//在指定目錄下創建臨時文件
tempFile=File.createTempFile(prefix,suffix,dir);
returntempFile.getCanonicalPath();
}catch(IOExceptione){
e.printStackTrace();
System.out.println("創建臨時文件失敗!"+e.getMessage());
returnnull;
}
}
}
publicstaticvoidmain(String[]args){
//創建目錄
StringdirName="D:/work/temp/temp0/temp1";
CreateFileUtil.createDir(dirName);
//創建文件
StringfileName=dirName+"/temp2/tempFile.txt";
CreateFileUtil.createFile(fileName);
//創建臨時文件
Stringprefix="temp";
Stringsuffix=".txt";
for(inti=0;i<10;i++){
System.out.println("創建了臨時文件:"
+CreateFileUtil.createTempFile(prefix,suffix,dirName));
}
//在默認目錄下創建臨時文件
for(inti=0;i<10;i++){
System.out.println("在默認目錄下創建了臨時文件:"
+CreateFileUtil.createTempFile(prefix,suffix,null));
}
}
}
輸出結果:
創建目錄D:/work/temp/temp0/temp1成功!
目標文件所在目錄不存在,准備創建它!
創建單個文件D:/work/temp/temp0/temp1/temp2/tempFile.txt成功!
創建了臨時文件:D:work emp emp0 emp1 emp5171.txt
創建了臨時文件:D:work emp emp0 emp1 emp5172.txt
創建了臨時文件:D:work emp emp0 emp1 emp5173.txt
創建了臨時文件:D:work emp emp0 emp1 emp5174.txt
創建了臨時文件:D:work emp emp0 emp1 emp5175.txt
創建了臨時文件:D:work emp emp0 emp1 emp5176.txt
創建了臨時文件:D:work emp emp0 emp1 emp5177.txt
創建了臨時文件:D:work emp emp0 emp1 emp5178.txt
創建了臨時文件:D:work emp emp0 emp1 emp5179.txt
創建了臨時文件:D:work emp emp0 emp1 emp5180.txt
在默認目錄下創建了臨時文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5181.txt
在默認目錄下創建了臨時文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5182.txt
在默認目錄下創建了臨時文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5183.txt
在默認目錄下創建了臨時文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5184.txt
在默認目錄下創建了臨時文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5185.txt
在默認目錄下創建了臨時文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5186.txt
在默認目錄下創建了臨時文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5187.txt
在默認目錄下創建了臨時文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5188.txt
在默認目錄下創建了臨時文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5189.txt
在默認目錄下創建了臨時文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5190.txt
B. javaweb如何將文件保存到伺服器的指定目錄
可以把文件目錄配置在web.xml文件的初始化參數中, 通過ServletAPI讀取文件目錄
比如
定義一個Properties文件保存相關配置
#可以上傳文件的後綴名
extensions=pptx,docx.doc,txt,jpg,jar
#單個文件的大小1M
fileMaxSize=1048576
#總共上傳文件大小5M
totalFileMaxSize=5242880
#文件保存路徑
filePath=z:/temp
#臨時文件路徑
tempDir=z:/temp/temp
使用Listener在伺服器啟動時載入配置信息
ServletContextcontext=event.getServletContext();
InputStreaminputStream=context
.getResourceAsStream("/WEB-INF/classes/file/upload/commons/uploadConfig.properties");
Propertiesproperties=newProperties();
try{
properties.load(inputStream);
context.setAttribute("fileConfig",properties);
System.out.println("properties="+properties.size());
}catch(IOExceptione){
e.printStackTrace();
}
在你上傳文件時通過配置文件讀取路徑保存
String filePath = ((Properties) this.getServletContext().getAttribute("fileConfig"))
.getProperty(FileUploadConstants.FILE_PATH);
C. java 將伺服器內的文件復制
你有FTPClient就比較好辦,假如你的兩台FTP伺服器分別為fs1和fs2
在本地開發代碼思路如下:
通過FTPClient連接上fs1,然後下載(可以循環批量下載)到本地伺服器,保存到一個臨時目錄。
下載完成後,FTPClient斷開與fs1的連接,記得必須logout。
本地伺服器通過FileInputStream將剛下載到臨時目錄的文件讀進來,得到一個List<File>集合。
通過FTPClient連接上fs2,循環List<File>集合,將文件上傳至fs2的特定目錄,然後清空臨時目錄,上傳完畢後,斷開fs2的連接,同樣必須logout。
D. java 彈出選擇目錄框(選擇文件夾),獲取選擇的文件夾路徑
java 彈出選擇目錄框(選擇文件夾),獲取選擇的文件夾路徑:
int result = 0;
File file = null;
String path = null;
JFileChooser fileChooser = new JFileChooser();
FileSystemView fsv = FileSystemView.getFileSystemView(); //注意了,這里重要的一句
System.out.println(fsv.getHomeDirectory()); //得到桌面路徑
fileChooser.setCurrentDirectory(fsv.getHomeDirectory());
fileChooser.setDialogTitle("請選擇要上傳的文件...");
fileChooser.setApproveButtonText("確定");
fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
result = fileChooser.showOpenDialog(chatFrame);
if (JFileChooser.APPROVE_OPTION == result) {
path=fileChooser.getSelectedFile().getPath();
System.out.println("path: "+path);
}
這是另外一種方法得到桌面路徑:
File desktop = new File(System.getProperty("user.home")+System.getProperty("file.separator")+"XX");
filechooser.setCurrentDirectory(desktop);
我的文檔 路徑: fsv.getDefaultDirectory());
user.name 用戶的賬戶名稱
user.home 用戶的主目錄
user.dir 用戶的當前工作目錄
java.version Java 運行時環境版本
java.vendor Java 運行時環境供應商
java.vendor.url Java 供應商的 URL
java.home Java 安裝目錄
java.vm.specification.version Java 虛擬機規范版本
java.vm.specification.vendor Java 虛擬機規范供應商
java.vm.specification.name Java 虛擬機規范名稱
java.vm.version Java 虛擬機實現版本
java.vm.vendor Java 虛擬機實現供應商
java.vm.name Java 虛擬機實現名稱
java.specification.version Java 運行時環境規范版本
java.specification.vendor Java 運行時環境規范供應商
java.specification.name Java 運行時環境規范名稱
java.class.version Java 類格式版本號
java.class.path Java 類路徑
java.library.path 載入庫時搜索的路徑列表
java.io.tmpdir 默認的臨時文件路徑
java.compiler 要使用的 JIT 編譯器的名稱
java.ext.dirs 一個或多個擴展目錄的路徑
os.name 操作系統的名稱
os.arch 操作系統的架構
os.version 操作系統的版本
E. 如何在Java中創建臨時目錄/文件夾
File file = new File("目錄或者文件名字的路徑是絕對的");
file.isFile(
//是文件的話
file.ceateNewFile();
)else{
file.mkDir();
}
F. Java創建文件夾及文件
package xj util;
import java io File;
import java io IOException;
public class CreateFileUtil {
public static boolean CreateFile(String destFileName) {
File file = new File(destFileName);
if (file exists()) {
System out println( 創建單個文件 + destFileName + 失敗 目標文件已存在! );
return false;
}
if (destFileName endsWith(File separator)) {
System out println( 創建單個文件 + destFileName + 失敗 目標不能是目錄! );
return false;
}
if (!file getParentFile() exists()) {
System out println( 目標文件所在路徑不存在 准備創建 );
if (!file getParentFile() mkdirs()) {
System out println( 創建目錄文件所在的目錄失敗! );
return false;
}
}
// 創建目標文件
try {
旅族答if (file createNewFile()) {
System out println( 創建單個文件 + destFileName + 成功! );
穗雀return true;
} else {
System out println( 創建單個文件 + destFileName + 失敗! );
return false;
}
} catch (IOException e) {
e printStackTrace();
System out println( 創建單個文件 + destFileName + 失敗! );
return false;
}
}
public static boolean createDir(String destDirName) {
File dir = new File(destDirName);
if(dir exists()) {
System out println( 創建目錄 + destDirName + 失敗 目標目錄已存在! );
return false;
}
if(!destDirName endsWith(File separator))
destDirName = destDirName + File separator;
// 創建單個目錄
if(dir mkdirs()) {
System out println( 創建目錄 + destDirName + 成功! );
return true;
} else {
System out println( 創建目錄 + destDirName + 成功! );
return false;
}
}
public static String createTempFile(String prefix String suffix String dirName) {
File tempFile = null;
try{
if(dirName == null) {
// 在默認文件夾下創建臨時文件
tempFile = File createTempFile(prefix suffix);
return tempFile getCanonicalPath();
}
拆慧else {
File dir = new File(dirName);
// 如果臨時文件所在目錄不存在 首先創建
if(!dir exists()) {
if(!CreateFileUtil createDir(dirName)){
System out println( 創建臨時文件失敗 不能創建臨時文件所在目錄! );
return null;
}
}
tempFile = File createTempFile(prefix suffix dir);
return tempFile getCanonicalPath();
}
} catch(IOException e) {
e printStackTrace();
System out println( 創建臨時文件失敗 + e getMessage());
return null;
}
}
public static void main(String[] args) {
// 創建目錄
String dirName = c:/test/test /test ;
CreateFileUtil createDir(dirName);
// 創建文件
String fileName = dirName + /test /testFile txt ;
CreateFileUtil CreateFile(fileName);
// 創建臨時文件
String prefix = temp ;
String suffix = txt ;
for(int i = ; i < ; i++) {
System out println( 創建了臨時文件: + CreateFileUtil createTempFile(prefix suffix dirName));
}
}
lishixin/Article/program/Java/hx/201311/25690