Javascript读取某文件夹下的所有文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript读取某文件夹下的所有文件相关的知识,希望对你有一定的参考价值。

如题,没有数据库,就是想用javascript读取某个文件下的所有文件,让其显示在网页上,具体代码怎么写?

实例说明
BuildPath(路径,文件名) //这个方法会对给定的路径加上文件,并自动加上分界符
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
var newpath = fso.BuildPath("c:\\tmp", "51js.txt"); //生成 c:\tmp\51js.txt的路径
alert(newpath);
-->
</SCRIPT>
CopyFile(源文件, 目标文件, 覆盖) //复制源文件到目标文件,当覆盖值为true时,如果目标文件存在会把文件覆盖
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
var newpath = fso.CopyFile("c:\\autoexec.bat", "d:\\autoexec.bak");
-->
</SCRIPT>
CopyFolder(对象目录,目标目录 ,覆盖) //复制对象目录到目标目录,当覆盖为true时,如果目标目录存在会把文件覆盖
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CopyFolder("c:\\WINDOWS\\Desktop", "d:\\"); //把C盘的Desktop目录复制到D盘的根目录
-->
</SCRIPT>
CreateFolder(目录名) //创建一个新的目录
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
var newFolderName = fso.CreateFolder("c:\\51JS"); //在C盘上创建一个51JS的目录
-->
</SCRIPT>
CreateTextFile(文件名, 覆盖) //创建一个新的文件,如果此文件已经存在,你需要把覆盖值定为true
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
var newFileObject = fso.CreateTextFile("c:\\autoexec51JS.bat", true); //脚本将在C盘创建一个叫 autoexec51JS.bat的文件
-->
</SCRIPT>
DeleteFile(文件名, 只读?) //删除一个文件,如果文件的属性是只读的话,你需要把只读值设为true
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject"); //为了安全我先把要删除的autoexec.bat备份到你的D盘
var newpath = fso.CopyFile("c:\\autoexec.bat", "d:\\autoexec.bat"); //把C盘的autoexec.bat文件删除掉
fso.DeleteFile("c:\\autoexec.bat", true);
-->
</SCRIPT>
DeleteFolder(文件名, 只读?)//删除一个目录,如果目录的属性是只读的话,你需要把只读值设为true
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CopyFolder("c:\\WINDOWS\\Desktop", "d:\\"); //为了安全我先把你C盘的Desktop目录复制到你D盘的根目录
fso.DeleteFolder("c:\\WINDOWS\\Desktop", true); //把你的Desktop目录删除,但因为desktop是系统的东西,所以不能全部删除,但.........
-->
</SCRIPT>
DriveExists(盘符) //检查一个盘是否存在,如果存在就返会真,不存在就返回.......
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
hasDriveD = fso.DriveExists("d"); //检查系统是否有D盘存在
hasDriveZ = fso.DriveExists("z"); //检查系统是否有Z盘存在
if (hasDriveD) alert("你的系统内有一个D盘");
if (!hasDriveZ) alert("你的系统内没有Z盘");
-->
</SCRIPT>
FileExists(文件名) //检查一个文件是否存在,如果存在就返会真,不存在就返回.......
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
fileName = fso.FileExists("c:\\autoexec.bat");
if (fileName) alert("你在C盘中有autoexec.bat文件,按下确定后这个文件将被删除!"); //开个玩笑:)
-->
</SCRIPT>
FolderExists(目录名) //检查一个目录是否存在,如果存在就返会真,不存在就返回.......
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
folderName = fso.FolderExists("c:\\WINDOWS\\Fonts");
if (folderName) alert("按下确定后系统的字库将被删除!"); //开个玩笑:)
-->
</SCRIPT>
GetAbsolutePathName(文件对象) //返回文件对象在系统的绝对路径
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
pathName = fso.GetAbsolutePathName("c:\\autoexec.bat");
alert(pathName);
-->
</SCRIPT>
GetBaseName(文件对象) //返回文件对象的文件名
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
baseName = fso.GetBaseName("c:\\autoexec.bat"); //取得autoexec.bat的文件名autoexec
alert(baseName);
-->
</SCRIPT>
GetExtensionName(文件对象) //文件的后缀
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
exName = fso.GetExtensionName("c:\\autoexec.bat"); //取得autoexec.bat后缀bat
alert(exName);
-->
</SCRIPT>
GetParentFolderName(文件对象) //取得父级的目录名
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
parentName = fso.GetParentFolderName("c:\\autoexec.bat"); //取得autoexec.bat的父级目录C盘
alert(parentName);
-->
</SCRIPT>
GetSpecialFolder(目录代码) //取得系统中一些特别的目录的路径,目录代码有3个分别是 0:安装Window的目录 1:系统文件目录 2:临时文件目录
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
tmpFolder = fso.GetSpecialFolder(2); //取得系统临时文件目录的路径 如我的是 C:\windows\temp
alert(tmpFolder);
-->
</SCRIPT>
GetTempName() //生成一个随机的临时文件对象,会以rad带头后面跟着些随机数,就好象一些软件在安装时会生成*.tmp
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
tmpName = fso.GetTempName(); //我在测试时就生成了radDB70E.tmp
alert(tmpName);
-->
</SCRIPT>
MoveFile(源文件, 目标文件) //把源文件移到目标文件的位置
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
var newpath = fso.MoveFile("c:\\autoexec.bat", "d:\\autoexec.bat"); //把C盘的autoexec.bat文件移移动到D盘
-->
</SCRIPT>
参考技术A 实例说明
BuildPath(路径,文件名)
//这个方法会对给定的路径加上文件,并自动加上分界符
<SCRIPT
LANGUAGE="JavaScript">
<!--
var
fso
=
new
ActiveXObject("Scripting.FileSystemObject");
var
newpath
=
fso.BuildPath("c:\\tmp",
"51js.txt");
//生成
c:\tmp\51js.txt的路径
alert(newpath);
-->
</SCRIPT>
CopyFile(源文件,
目标文件,
覆盖)
//复制源文件到目标文件,当覆盖值为true时,如果目标文件存在会把文件覆盖
<SCRIPT
LANGUAGE="JavaScript">
<!--
var
fso
=
new
ActiveXObject("Scripting.FileSystemObject");
var
newpath
=
fso.CopyFile("c:\\autoexec.bat",
"d:\\autoexec.bak");
-->
</SCRIPT>
CopyFolder(对象目录,目标目录
,覆盖)
//复制对象目录到目标目录,当覆盖为true时,如果目标目录存在会把文件覆盖
<SCRIPT
LANGUAGE="JavaScript">
<!--
var
fso
=
new
ActiveXObject("Scripting.FileSystemObject");
fso.CopyFolder("c:\\WINDOWS\\Desktop",
"d:\\");
//把C盘的Desktop目录复制到D盘的根目录
-->
</SCRIPT>
CreateFolder(目录名)
//创建一个新的目录
<SCRIPT
LANGUAGE="JavaScript">
<!--
var
fso
=
new
ActiveXObject("Scripting.FileSystemObject");
var
newFolderName
=
fso.CreateFolder("c:\\51JS");
//在C盘上创建一个51JS的目录
-->
</SCRIPT>
CreateTextFile(文件名,
覆盖)
//创建一个新的文件,如果此文件已经存在,你需要把覆盖值定为true
<SCRIPT
LANGUAGE="JavaScript">
<!--
var
fso
=
new
ActiveXObject("Scripting.FileSystemObject");
var
newFileObject
=
fso.CreateTextFile("c:\\autoexec51JS.bat",
true);
//脚本将在C盘创建一个叫
autoexec51JS.bat的文件
-->
</SCRIPT>
DeleteFile(文件名,
只读?)
//删除一个文件,如果文件的属性是只读的话,你需要把只读值设为true
<SCRIPT
LANGUAGE="JavaScript">
<!--
var
fso
=
new
ActiveXObject("Scripting.FileSystemObject");
//为了安全我先把要删除的autoexec.bat备份到你的D盘
var
newpath
=
fso.CopyFile("c:\\autoexec.bat",
"d:\\autoexec.bat");
//把C盘的autoexec.bat文件删除掉
fso.DeleteFile("c:\\autoexec.bat",
true);
-->
</SCRIPT>
DeleteFolder(文件名,
只读?)//删除一个目录,如果目录的属性是只读的话,你需要把只读值设为true
<SCRIPT
LANGUAGE="JavaScript">
<!--
var
fso
=
new
ActiveXObject("Scripting.FileSystemObject");
fso.CopyFolder("c:\\WINDOWS\\Desktop",
"d:\\");
//为了安全我先把你C盘的Desktop目录复制到你D盘的根目录
fso.DeleteFolder("c:\\WINDOWS\\Desktop",
true);
//把你的Desktop目录删除,但因为desktop是系统的东西,所以不能全部删除,但.........
-->
</SCRIPT>
DriveExists(盘符)
//检查一个盘是否存在,如果存在就返会真,不存在就返回.......
<SCRIPT
LANGUAGE="JavaScript">
<!--
var
fso
=
new
ActiveXObject("Scripting.FileSystemObject");
hasDriveD
=
fso.DriveExists("d");
//检查系统是否有D盘存在
hasDriveZ
=
fso.DriveExists("z");
//检查系统是否有Z盘存在
if
(hasDriveD)
alert("你的系统内有一个D盘");
if
(!hasDriveZ)
alert("你的系统内没有Z盘");
-->
</SCRIPT>
FileExists(文件名)
//检查一个文件是否存在,如果存在就返会真,不存在就返回.......
<SCRIPT
LANGUAGE="JavaScript">
<!--
var
fso
=
new
ActiveXObject("Scripting.FileSystemObject");
fileName
=
fso.FileExists("c:\\autoexec.bat");
if
(fileName)
alert("你在C盘中有autoexec.bat文件,按下确定后这个文件将被删除!");
//开个玩笑:)
-->
</SCRIPT>
FolderExists(目录名)
//检查一个目录是否存在,如果存在就返会真,不存在就返回.......
<SCRIPT
LANGUAGE="JavaScript">
<!--
var
fso
=
new
ActiveXObject("Scripting.FileSystemObject");
folderName
=
fso.FolderExists("c:\\WINDOWS\\Fonts");
if
(folderName)
alert("按下确定后系统的字库将被删除!");
//开个玩笑:)
-->
</SCRIPT>
GetAbsolutePathName(文件对象)
//返回文件对象在系统的绝对路径
<SCRIPT
LANGUAGE="JavaScript">
<!--
var
fso
=
new
ActiveXObject("Scripting.FileSystemObject");
pathName
=
fso.GetAbsolutePathName("c:\\autoexec.bat");
alert(pathName);
-->
</SCRIPT>
GetBaseName(文件对象)
//返回文件对象的文件名
<SCRIPT
LANGUAGE="JavaScript">
<!--
var
fso
=
new
ActiveXObject("Scripting.FileSystemObject");
baseName
=
fso.GetBaseName("c:\\autoexec.bat");
//取得autoexec.bat的文件名autoexec
alert(baseName);
-->
</SCRIPT>
GetExtensionName(文件对象)
//文件的后缀
<SCRIPT
LANGUAGE="JavaScript">
<!--
var
fso
=
new
ActiveXObject("Scripting.FileSystemObject");
exName
=
fso.GetExtensionName("c:\\autoexec.bat");
//取得autoexec.bat后缀bat
alert(exName);
-->
</SCRIPT>
GetParentFolderName(文件对象)
//取得父级的目录名
<SCRIPT
LANGUAGE="JavaScript">
<!--
var
fso
=
new
ActiveXObject("Scripting.FileSystemObject");
parentName
=
fso.GetParentFolderName("c:\\autoexec.bat");
//取得autoexec.bat的父级目录C盘
alert(parentName);
-->
</SCRIPT>
GetSpecialFolder(目录代码)
//取得系统中一些特别的目录的路径,目录代码有3个分别是
0:安装Window的目录
1:系统文件目录
2:临时文件目录
<SCRIPT
LANGUAGE="JavaScript">
<!--
var
fso
=
new
ActiveXObject("Scripting.FileSystemObject");
tmpFolder
=
fso.GetSpecialFolder(2);
//取得系统临时文件目录的路径
如我的是
C:\windows\temp
alert(tmpFolder);
-->
</SCRIPT>
GetTempName()
//生成一个随机的临时文件对象,会以rad带头后面跟着些随机数,就好象一些软件在安装时会生成*.tmp
<SCRIPT
LANGUAGE="JavaScript">
<!--
var
fso
=
new
ActiveXObject("Scripting.FileSystemObject");
tmpName
=
fso.GetTempName();
//我在测试时就生成了radDB70E.tmp
alert(tmpName);
-->
</SCRIPT>
MoveFile(源文件,
目标文件)
//把源文件移到目标文件的位置
<SCRIPT
LANGUAGE="JavaScript">
<!--
var
fso
=
new
ActiveXObject("Scripting.FileSystemObject");
var
newpath
=
fso.MoveFile("c:\\autoexec.bat",
"d:\\autoexec.bat");
//把C盘的autoexec.bat文件移移动到D盘
-->
</SCRIPT>
参考技术B javascript fso是有权限和安全性问题,很少人在用,用程序语言解决吧!

php如何读取某目录下的所有同类型文件

假设我Album文件夹里有许多XXX.jpg, YYY.jpg, ZZZ.png, aaa.txt
如何读取后缀为jpg的文件总数
谢谢了!
我对PHP不熟用,现在要用

PHP使用函数opendir、readdir、closedir来实现文件夹的操作,下面以一个最基本的例子来作为入门介绍:

<?php
//获取某目录下所有文件、目录名(不包括子目录下文件、目录名)  
    $dir=\'C:/Users/\';
    $handler = opendir($dir);  
    while (($filename = readdir($handler)) !== false) //务必使用!==,防止目录下出现类似文件名“0”等情况  
        if ($filename != "." && $filename != "..")   
                $files[] = $filename ;  
             
         
      
    closedir($handler);  
       
//打印所有文件名  
    foreach ($filens as $value)   
        echo $value."<br />";  
      
?>

上面的代码显示c:\\users文件夹里面的所有的文件和文件夹,忽略.和..两个特殊含义的文件夹,程序把所有文件和文件夹名称扫描保存到数组里面,然后显示。


如果你需要对文件进行过滤,例如只处理*.xls文件,可以在过滤.和..的地方添加代码。例如:

if (substr($filename,-4)==\'.xls\')


当你理解了上面的代码之后,你就能编写扫描子文件夹、以及子 文件夹里面文件的方法了。基本思路是使用递归,下面我给出一个简单的例子:

function get_allfiles($path,&$files)   
    if(is_dir($path))  
        $dp = dir($path);  
        while ($file = $dp ->read())  
            if($file !="." && $file !="..")  
                get_allfiles($path."/".$file, $files);  
              
          
        $dp ->close();  
      
    if(is_file($path))  
        $files[] =  $path;  
      
  
     
function get_filenamesbydir($dir)  
    $files =  array();  
    get_allfiles($dir,$files);  
    return $files;  
  
     
$filenames = get_filenamesbydir("c:/users/");  
//打印所有文件名,包括路径  
foreach ($filenames as $value)   
    echo $value."<br />";  

这个例子使用dir类来编写,实际上用opendir、readdir、closedir来写也是相同的。

参考技术A

PHP的glob() 函数返回匹配指定模式的文件名或目录。

该函数返回一个包含有匹配文件 / 目录的数组。如果出错返回 false。

语法

glob(pattern,flags)

参数

   

描述

 file    
   必需。规定检索模式。    
 

 
size    
   可选。规定特殊的设定。


GLOB_MARK - 在每个返回的项目中加一个斜线

GLOB_NOSORT - 按照文件在目录中出现的原始顺序返回(不排序)

GLOB_NOCHECK - 如果没有文件匹配则返回用于搜索的模式

GLOB_NOESCAPE - 反斜线不转义元字符

GLOB_BRACE - 扩充 a,b,c 来匹配 'a','b' 或 'c'

GLOB_ONLYDIR - 仅返回与模式匹配的目录项

GLOB_ERR - 停止并读取错误信息(比如说不可读的目录),默认的情况下忽略所有错误


注释:GLOB_ERR 是 PHP 5.1 添加的。

例子 1

<?php
$a = glob("*.txt");
print_r(count($a));
?>

   

参考技术B <?php

$files = glob('*.jpg'); // 其他文件做类似修改,比如 *.png, *.txt等。。有目录请添加绝对目录。比如:c:/album/*.jpg
echo 'total : ' , count($files); // $files是一个文件数组。

?>本回答被提问者采纳

以上是关于Javascript读取某文件夹下的所有文件的主要内容,如果未能解决你的问题,请参考以下文章

php如何读取某目录下的所有同类型文件

python 统计文件夹下的文件夹/某类型文件的数目

java怎么得到本机某一文件夹下所有文件的名字

Java 如何读取目录下的文件内容

Java实现读取文件夹下(包括子目录)所有文件的文件名

怎样用matlab读取一个文件夹下的多个子文件夹中的多个jpg图片,急用啊~~~