2011-04-11 178 views
0

使用Jscript來確定給定路徑是文件夾還是文件的最簡單方法是什麼?如何確定給定路徑是文件還是文件夾?

+0

像'在/ usr /本地/ bla'可能是文件或文件夾,所以它不是一般的可能路徑,除非你有一些限制來區分文件和文件夾。 – 2011-04-11 06:18:13

+0

'/ folder/a',是名爲'a'的文件夾還是名爲'a'的文件? – alex 2011-04-11 06:19:19

+2

您是否在瀏覽器中談論Javascript,在這種情況下,路徑將會是URL,或者在可以訪問文件系統的其他某個環境中使用Javascript? – deceze 2011-04-11 06:24:26

回答

2

你沒有說你在哪個環境工作。如果您在Windows Scripting環境意味着JScript,那麼你可以使用Scripting.FileSystemObject對象:

var fso = new ActiveXObject('Scripting.FileSystemObject'); 
if (fso.FileExists(path)) { 
    WScript.Echo("It's a file!"); 
} else if (fso.FolderExists(path)) { 
    WScript.Echo("It's a folder!"); 
} else { 
    WScript.Echo("It's superman!"); 
} 
+0

謝謝Martijn ..這工作 – svv 2011-04-11 09:11:48

+0

我不知道這是解決它的方式,我猜我懶惰環顧四周。 +1爲了餵我的思想:) – ace 2011-04-11 09:19:12

0

只有JavaScript,我知道你不能。但是如果你知道它的擴展名,你可以用文件做一些驗證。這裏看一個例子。

JS

var pathX = "[?:[a-zA-Z0-9-_\.]+(?:.txt|.sql)"; /* File validation using extension*/ 

function testRegx(frm){ 
    var path = frm.testfile.value; 

    if(path.toString().match(pathX)){ 
     alert("Valid"); 
    } else { 
     alert("Invalid"); 
    } 
} 

HTML

<form name="testupload"> 
    <p> 
    <input type="file" name="testfile"> 
    <input type="button" onClick="testRegx(this.form);" value="test"> 
    </p> 
</form> 

這個技術還是不如你可以篡改文件更改其擴展名也可以通過添加重命名文件的最佳方法基於給定的有效文件的有效擴展名。

+0

可以在Windows中篡改嗎?即。可以一個文件(沒有擴展名)和文件夾名稱相同嗎?我想不是 – svv 2011-04-11 07:57:16

+0

@sw你可以更改擴展名,也可以刪除擴展名,但是當然文件的格式仍然是我猜的原始格式。你不能找到同名和父母的文件夾。 – ace 2011-04-11 08:22:51

相關問題