2011-04-11 166 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

相关问题