導航:首頁 > 文件目錄 > java驗證文件路徑安全

java驗證文件路徑安全

發布時間:2023-05-10 04:27:40

java 如何判斷一個路徑是否是有效路徑

importjava.io.File;

/**
*本程序演示File類的使用.
*@version1.02005年5月20日
*@authorMichael
*/

classListDirectory{

/**存儲要搜索的目錄名稱.*/
配碧StringdirectoryName;

/**聲明一個File對象.*/
FilefileObj;

/**
*構造方法.
*@paramname是一個字元串
*/
ListDirectory(Stringname){
directoryName=name;
fileObj=newFile(name);
}

/**
*顯示目錄和子目錄的方法.
*/
voiddisplay(){
if(fileObj.isDirectory()){
System.out.println("目錄是:"+directoryName);
String[]fileName=fileObj.list();

for(intctr=0;ctr<fileName.length;ctr++){
如州FilenextFileObj=newFile(directoryName+"/"+fileName[ctr]);

if(nextFileObj.isDirectory()){
System.out.println(fileName[ctr]+"是一個目錄");
}else{
System.out.println(fileName[ctr]+"是一個文件");
}
}
}else{
System.out.println(directoryName+"不是一個有效目錄");
}
}
}

/**
*本程序測試ListDirectory類.
*@version1.02005年5月20日
*@authorMichael
*/

classDirectoryTest{

/**
*構造方法.
*/
protectedDirectoryTest(){
}

/**
*這是一個main方法.
*@paramargs被傳遞至main方法
*/
publicstaticvoidmain(String[]args){
ListDirectorylistObj=newListDirectory("java");
listObj.display();
渣賣蔽}
}

⑵ Java中怎樣根據文件的路徑去判斷該文件夾中是否存在該文件

1. 首先明確一點的是:test.txt文件可以和test文件夾同時存在同一目錄下;test文件不能和test文件夾同時存在同一目錄下。

原因是:

(1)win的文件和文件夾都是以節點形式存放,這就意味著相同的文件和文件名不能處在同一目錄下,會命名沖突。

(2)文件後綴名也算是文件名的一部分,即test.txt文件和test文件不是相同文件名的文件。

2. 基於以上原因,如果我想在d:創建一個test文件夾,但是d:下面有一個test文件,那麼由於命名沖突,是不可能創建成功的。

所以,在創建之前,要通過file.exists()判斷是否存在test命名的文件或者文件夾,如果返回true,是不能創建的;

import java.io.File;

import java.io.IOException;

public class Main {

public static void main(String[] args) {

File file = new File("d:\test_file.txt");

Main.judeFileExists(file);

File dir = new File("d:\test_dir");

Main.judeDirExists(dir);

}// 判斷文件是否存在

public static void judeFileExists(File file) {

if (file.exists()) {

System.out.println("file exists");

} else {

System.out.println("file not exists, create it ...");

try {

file.createNewFile();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

} // 判斷文件夾是否存在

public static void judeDirExists(File file) {

if (file.exists()) {

if (file.isDirectory()) {

System.out.println("dir exists");

} else {

System.out.println("the same name file exists, can not create dir");

} }

else { System.out.println("dir not exists, create it ...");

file.mkdir();

}

}

}

然後再通過file.isDirectory()來判斷這是不是一個文件夾。

⑶ JAVA正則表達式(如何判斷文件路徑合法,路徑例如:D:\測試\test.csv),請幫忙解答一下,謝謝。

java中"\"要轉義成"\\",如果路徑錯誤會報異常的,直接catch就OK了

⑷ javaee 過濾器怎樣判斷輸入的url路徑是正確的,不正確則跳轉index.jsp

JSP 圖片無瞎手液法顯示通常是由於以下原因:
1、文件路徑或文件名稱的問題,這需要驗證文件的路徑是否正確是否區分了大小寫。jsp路徑也是十分特殊的,相對路徑有時候是無效的,所以需要使用絕對路徑,路徑前使用<%=request.getContextPath() %>.
2、圖片的規格有問題,驗證的方式是:在文件管理器中滑鼠右鍵圖片,選擇打開方式IE,看是否能打開,能正常打開的圖片就沒薯老有問題。
3、顯示圖片的代碼寫的不對。這里只能看到提問,看不到詳細,猜測可能會有這樣的錯誤,或者是調用標簽方式不正確,html有兩種調用圖片的方式,一種是圖片標簽直接做展示,另一種則是通過背景的形式展現,如下:
<img src="imagePath" />
<xxx style="background:url(imagePath);"></xxx>
<xxx style="background-image:imagePath;"></xxx>
4、被覆蓋。如果圖片因為被別的div或者其他html控制項蓋住了,就不會顯示正常了,磨物可以通過IE瀏覽器點「F12」打開開發人員工具,在「HTML」選項卡下有個游標的圖標,點擊後再點擊頁面中葯顯示圖片的區域,開發人員工具的面板中的代碼塊就自動跳到該區域對應的代碼並且高亮顯示,這樣就可以知道是什麼將圖片覆蓋在後面了。出現此種情況需要先看是否兩個區域都正確,如果該覆蓋圖片的區塊是被擠到這里來的,則需要重新調整此區塊的位置,若是確實應該是和圖片重疊顯示的,則需要在圖片中添加樣式:z-index,數值比那個區塊大即可。

⑸ Java中怎樣根據文件的路徑去判斷該文件夾中是否存在該文件

1. 首先明確一點的是:test.txt文件可以和test文件夾同時存在同一目錄下;test文件不能和test文件夾同時存在同一目錄下。

原因是:

(1)win的文件和文件夾都是以節點形式存放,這就意味著相同的文件和文件名不能處在同一目錄下,會命名沖突。

(2)文件後綴名也算是文件名的一部分,即test.txt文件和test文件不是相同文件名的文件。

2. 基於以上原因,如果我想在d:創建一個test文件夾,但是d:下面有一個test文件,那麼由於命名沖突,是不可能創建成功的。

所以,在創建之前,要通過file.exists()判斷是否存在test命名的文件或者文件夾,如果返回true,是不能創建的;

import java.io.File;

import java.io.IOException;

public class Main {

public static void main(String[] args) {

File file = new File("d:\test_file.txt");

Main.judeFileExists(file);

File dir = new File("d:\test_dir");

Main.judeDirExists(dir);

}// 判斷文件是否存在

public static void judeFileExists(File file) {

if (file.exists()) {

System.out.println("file exists");

} else {

System.out.println("file not exists, create it ...");

try {

file.createNewFile();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

} // 判斷文件夾是否存在

public static void judeDirExists(File file) {

if (file.exists()) {

if (file.isDirectory()) {

System.out.println("dir exists");

} else {

System.out.println("the same name file exists, can not create dir");

} }

else { System.out.println("dir not exists, create it ...");

file.mkdir();

}

}

}

然後再通過file.isDirectory()來判斷這是不是一個文件夾。

⑹ Java語言用正則表達式判斷文件目錄合法性

functiontestPath(){
varpath=/^[a-zA-Z]:[\]((?!)(?![^\/]*s+[\/])[w-]+[\/])*(?!)(?![^.]*s+.)[w-]+$/;
varbackuppath=document.getElementById("xxx");
if(path.test(backuppath)){
returntrue;
}else{
alert("請填寫正確路徑!");
returnfalse;
}
returntrue;
}

String format ="/^[a-zA-Z]:[\]((?!)(?![^\/]*s+[\/])[w-]+[\/])*(?!)(?![^.]*s+.)[w-]+$/";

⑺ java用正則表達式判斷文件路徑格式是否正確。

//"^[A-z]:\\(.+?\\)*$"不能確定深度匹配0到多次就可以了
Stringsource="z:\java\kl\$kls\";
System.out.println(source.matches("^[A-z]:\\(.+?\\)*$"));

⑻ java如何判斷文件路徑

package jixutest;

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.text.DateFormat;
import java.util.Date;
public class TestERead extends Frame implements ActionListener,ItemListener{
private List list;//用於顯示文件列表
private TextField details;//用於顯示選中的文件(夾)詳細情況
private Panel buttons;//用於放置兩個button
private Button up,close;
private File currentDir;
private FilenameFilter filter;//文件篩選器
private String[] files;//放置文件(夾)名的數組
private DateFormat dateFormatter=DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT);//日期格式化,注意getDateTimeInstance有兩個念前顫參數,分別表示日期和時間
/*
* 說明:
* DateFormat shortDateFormat =DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
* DateFormat mediumDateFormat =DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM);
* DateFormat longDateFormat =DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);
* DateFormat fullDateFormat =DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);
* 對應的日期時間格式分別如下:
* 9/29/01 8:44 PM
* Sep 29, 2001 8:44:45 PM
* September 29, 2001 8:44:45 PM EDT
* Saturday, September 29, 2001 8:44:45 PM EDT
* */
public TestERead(String directory,FilenameFilter filter){
super("File Lister");//窗口標題
this.filter=filter;//文件篩選器
addWindowListener(new WindowAdapter(){//關閉窗口
public void windowClosing(WindowEvent e){
dispose();
}
});
list=new List(12,false);//一個12行的list表單
list.setFont(new Font("MonoSpaced",Font.PLAIN,14));//設置字體
list.addActionListener(this);//捕捉雙擊滑鼠的行為
list.addItemListener(this);//捕捉悔悔單擊滑鼠的行為(選仔敗中項)

details=new TextField();//顯示文件詳情
details.setFont(new Font("MonoSpaced",Font.PLAIN,12));
details.setEditable(false);//readonly

buttons=new Panel();
buttons.setLayout(new FlowLayout(FlowLayout.RIGHT,15,15));//靠右排列項,間距15 15
buttons.setFont(new Font("SansSerif",Font.BOLD,14));

up=new Button("上一級目錄");
close=new Button("關閉");
up.addActionListener(this);
close.addActionListener(this);

buttons.add(up);
buttons.add(close);

this.add(list,"Center");
this.add(details,"North");
this.add(buttons,"South");
this.setSize(500,300);

listDirectory(directory);//列出指定目錄
}
public void listDirectory(String directory){//此方法作用是列出文件,並不涉及文件的操作
File dir=new File(directory);//創建文件(目錄)對象
if(!dir.isDirectory()){
throw new IllegalArgumentException("FileLister:no such directory");
}
files=dir.list(filter);//列出文件並用filter篩選
java.util.Arrays.sort(files);//排序文件
list.removeAll();//清除此前列出的文件列表
list.add("上一級目錄");
for(int i=0;i<files.length;i++)
list.add(files[i]);//將文件加入到列表框
this.setTitle(directory);
details.setText(directory);
currentDir=dir;
}
public void itemStateChanged(ItemEvent e){ //選中項(單擊)的相應行為,並不涉及雙擊項目
int i=list.getSelectedIndex()-1;//因為我們在列表中的第一項是「上一級目錄」,因此列表的selectedindex要比files的index大一,而我們要獲取files的index,就要相應減去1
if(i<0)
return;
String filename=files[i];
File f=new File(currentDir,filename);
if(!f.exists())
throw new IllegalArgumentException("FileLister:no such file or directory");
String info=filename;
if(f.isDirectory())
info+=File.separator;//如果是目錄就在後面增加一個分隔符,windows下是「\」,Linux下是「/」
info+=" "+f.length()+ " bytes ";
info +=dateFormatter.format(new java.util.Date(f.lastModified()));
if(f.canRead()) info+=" Read";
if(f.canWrite()) info+=" Write";
details.setText(info);
}
public void actionPerformed(ActionEvent e){//雙擊項目、單擊button的行為定義,由此我們也發現,對於列表的雙擊和對按鈕的單擊都屬於ActionEvent
if(e.getSource()==close) this.dispose();//按鈕close的行為定義
else if(e.getSource()==up) {up();}//按鈕up的行為定義
else if(e.getSource()==list) {
int i=list.getSelectedIndex();
if(i==0) up();//如果selectedindex為0,即第一項,就是「上一級目錄」那一項,就調用up()方法
else{
String name=files[i-1];
File f=new File(currentDir,name);
String fullname=f.getAbsolutePath();//取得文件(目錄)的絕對路徑
if(f.isDirectory()) listDirectory(fullname);//如果是目錄,則列出
// else new FileViewer(fullname).setVisible(true);//否則創建一個FileViewer類,即要彈出我們昨天所寫的FileViewer窗口來讀取文件的內容
}
}}

protected void up(){//列出父目錄
String parent=currentDir.getParent();
if(parent==null) return;
listDirectory(parent);//一個遞歸
}
public static void usage(){
System.out.println("Usage: java FileLister [directory_name] "+"[-e file_extension]");
System.exit(0);
}

public static void main(String args[]) throws IOException{
TestERead f;
FilenameFilter filter=null;
String directory=null;

for(int i=0;i<args.length;i++){
if(args[i].equals("-e")){
if(++i>args.length) usage();
final String suffix=args[i];//文件擴展名(-e後接著的輸入參數,因為前面已經有++i)
filter=new FilenameFilter(){//篩選器filter要實現FilenameFliter介面
public boolean accept(File dir,String name){
/*Tests if a specified file should be included in a file list.
* dir - the directory in which the file was found.
* name - the name of the file.
* 就是說,如果文件的擴展名跟我們輸入的一致,則返回true
* 否則判斷文件是否為一個目錄,如果是一個目錄,那麼也返回
* 而其他不符合我們輸入的文件,則不列出
*/
if(name.endsWith(suffix)) return true;
else return (new File(dir,name)).isDirectory();
}
};
}
else {
if(directory!=null) usage();//我們初始化的目錄是null的,如果非null,表明程序有問題,退出
else directory=args[i];//否則將-e前一個參數賦給directory
}
}
if(directory==null) directory=System.getProperty("user.dir");//如果沒有輸入目錄參數,那麼就用用戶當前目錄
f=new TestERead(directory,filter);//創建一個FileLister,這里有兩個參數,一個是目錄,一個是篩選器,這個篩選器就是我們剛才創建的那個,注意這個類中我們並沒有在main方法之外單獨創建一個篩選器方法
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
f.setVisible(true);
}
}

⑼ 如何調整java安全級別

要在 Internet Explorer 中配置 Java 安全性,請執行以下操作:
啟動 Internet Explorer,然後單擊工具菜單上的 Internet 選項。
在 Internet 選項對話框中,單擊安全選項卡。
「安全」頁上有四個安全區域:

選擇要更改其 Java 安全性設置的區域。
Internet
本地 Intranet
受信任的站點
受限制的站點
在該區域的安全級別下,單擊自定義級別。在 Internet Explorer 4.x 版本中,單擊自定義級別,然後單擊設置。
查看 Microsoft VM 部分(Internet Explorer 4.x 中的 Java 部分)。
在 Microsoft VM 下的「Java 許可權」列表中,單擊自定義。
單擊 Java 自定義設置。
單擊查看許可權選項卡可查看當前的 Java 許可權。Java 許可權分為三種主要類別:

賦予未簽名內容的許可權
請求這些許可權的未簽名 Java 小程序無須發出用戶提示便可運行。
允許已簽名內容的許可權
請求這些許可權的已簽名 Java 小程序無須發出用戶提示便可運行。
拒絕已簽名內容的許可權
這些許可權拒絕已簽名的 Java 小程序。
單擊編輯許可權選項卡。選擇需要用於准確控制該區域 Java 許可權的選項。如果不想保留已做出的設置,可以單擊重置按鈕將許可權重置為:

保存的許可權
高安全級
中安全級
低安全級
單擊確定,然後再次單擊確定。

⑽ 文件路徑安全性:getPath(),getAbsolutePath(),getCanonicalPath()

java.io.File 類提供3個檔笑禪行塵方法用於獲取文件路徑升飢: getPath() , getAbsolutePath() , getCanonicalPath() ,這3個方法間的區別可參考以下示例:

運行結果:

Java API:

閱讀全文

與java驗證文件路徑安全相關的資料

熱點內容
SQL中打開excel文件 瀏覽:468
藍牙可以傳word文件嗎 瀏覽:65
三星能自己升級系統嗎 瀏覽:265
12款新福克斯手動擋bcm升級 瀏覽:330
js內容尾部增加內容 瀏覽:803
sqlldr控制文件詳解 瀏覽:614
做界面用哪個編程語言 瀏覽:942
怎麼把網站打包成蘋果手機 瀏覽:913
補丁在哪個文件夾 瀏覽:170
類似安全文件的軟體 瀏覽:723
為什麼編程要學這門語言 瀏覽:678
網卡的配置文件目錄 瀏覽:960
計算器單片機編程叫什麼 瀏覽:736
網站編輯需要會什麼 瀏覽:622
單片機程序計數器的功能 瀏覽:917
網路攝像頭怎麼接虛擬儲存器 瀏覽:84
好壓IMG壓縮文件轉換成光碟 瀏覽:588
前端json格式如何排序 瀏覽:821
ocx實現選擇保存文件 瀏覽:986
office2007教程免費下載 瀏覽:489

友情鏈接