JS 操作文件案例,遍历文件,并随机抽取

遍历文件夹下的文件并展示 - JavaScript技巧 在JavaScript中,我们经常需要遍历文件夹下的文件并展示它们的相关信息。我们将使用递归方法遍历文件夹,并显示每个文件的名称和路径。通过以上代码,我们可以遍历指定文件夹及其子文件夹,并显示每个文件的名称和路径。你可以根据需要进行进一步的处理,如筛选特定类型的文件或执行其他操作。希望本文能够帮助你理解如何在JavaScript中遍历文件夹并展示文件的名称和路径。接下来,我们将创建一个递归函数,该函数将遍历文件夹及其子文件夹,并显示每个文件的名称和路径。方法来读取文件夹中的文件,并使用。 阅读详情

<html>
<head>Sam遍历文件夹,随机抽取</head>
<script language="javascript">

//要遍历的图片地址,注意地址要用\\
var picPath="C:\\Users\\Administrator.USER-20160321ID\\Desktop\\随机取图片\\测试图片\\";

//移动抽取到的图片要保存的地方
var eFolder='C:\\Users\\Administrator.USER-20160321ID\\Desktop\\随机取图片\\get\\';

//要随机取的图片数量,数量不可大于遍历的文件数量
var getPicCount=5;

//mType为1 移动,type为0 复制
var mType=0;

//----------注意!!!非技术人员,以下请不要更改!!!本程序Sam原创
var s = "";
var result = [];
function FileInfo(path, name,time) {
  this.path = path;
  this.name = name;
  this.time = time;
}
function showFolderFileList(folderspec)
{
   var fso,f,fc,name;
   var url,str,file,filename;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.GetFolder(folderspec);
   fc = new Enumerator( f.files );
   for (; !fc.atEnd(); fc.moveNext( ) ) {
      filename = fso.GetFileName( fc.item( ) );
      var file = fso.getFile(folderspec + "\\" + filename);
      var fileInfo = new FileInfo(folderspec, filename,file.DateLastModified);
      result.push(fileInfo);
   }
   var Collection = new Enumerator(f.SubFolders);  
  
       for (Collection.moveFirst(); !Collection.atEnd(); Collection.moveNext()) {  
        var Obj = Collection.item();  
        showFolderFileList(Obj.Path);
    }  
   return result;
}
function display_result(result)
{
   var body = document.getElementById("mtbody");
   var size = result.length;
   var tr = document.getElementById("mtr");
   for( var i =0; i < size; i++ ) {
      var newTr = tr.cloneNode(true);
      var children = newTr.children;
      for( var j = 0 ; j < children.length; j++) {
        var item = children.item(j);
        switch(j) {
          case 0:
            item.innerHTML = result[i].path;
            break;
          case 1:
            item.innerHTML = '<a href="'+result[i].path+'\\'+result[i].name+'" target="_blank">'+result[i].name+'</a>';
            break;
          //case 2:
            //item.innerHTML = result[i].time;
        }
      }
      body.appendChild(newTr);
    }
}

//随机取数函数
function getRandomArrayElements(arr, count) {
    var shuffled = arr.slice(0), i = arr.length, min = i - count, temp, index;
    while (i-- > min) {
        index = Math.floor((i + 1) * Math.random());
        temp = shuffled[index];
        shuffled[index] = shuffled[i];
        shuffled[i] = temp;
    }
    return shuffled.slice(min);
}

function run() {
  var list_result = showFolderFileList(picPath);//开始遍历目录
  display_result(list_result);//显示所有文件
  document.getElementById("picCounts").innerHTML=list_result.length;


//-----------------
//要移动的源文件夹
var sFolder=picPath;
var fso = new ActiveXObject("Scripting.FileSystemObject"); 

function MovePic(ff,type){
    var tmpArr=new Array();
    var tempff=ff.replace(sFolder,'');
    var folderName='',arrLast='',f1;
    //document.write(tempff+'<br>');
    tmpArr=tempff.split("\\");
    arrLast=tmpArr.pop();//文件
    for(var i in tmpArr){
        //document.write(tmpArr[i]+'<br>');
        //循环并建立文件夹
        folderName = folderName+(tmpArr[i]+"\\");
        if (fso.FolderExists(eFolder+folderName)){
                  //document.write(tmpArr[i]+'存在<br>');
        }else{
            fso.CreateFolder (eFolder+folderName);//创建文件夹
            //document.write(tmpArr[i]+'已创建<br>');    
        }
    }
    f1 = fso.GetFile(ff);
    if(type){
        f1.Move(eFolder+folderName+arrLast);//移动
    }else{
        f1.Copy(eFolder+folderName+arrLast);//复制    
    }
    //document.write(eFolder+folderName+arrLast);
}

//-------------

//随机显示指定数量的文件

var tempArr=getRandomArrayElements(list_result, getPicCount);
var itemstr='';
for( var i =0; i < tempArr.length; i++ ) {
 //itemstr=itemstr+'<a href="'+result[i].path+'\\'+result[i].name+'" target="_blank">'+tempArr[i].path+'\\'+tempArr[i].name+'</a>';
 itemstr=itemstr+'<a href="#">'+tempArr[i].path+'\\'+tempArr[i].name+'</a>';
 //复制或移动
 MovePic(tempArr[i].path+'\\'+tempArr[i].name,mType);
 
}
document.getElementById("suijistr").innerHTML=itemstr;
document.getElementById("getpicnum").innerHTML=getPicCount;
}

</script>
<style>
#mtable td{heidth:20px; line-height:20px;}
#picCounts {color:red;}
#suijistr a{ display:block; height:21px; line-height:21px;}
</style>
</head>
<body onload = "run()">
<a href="#gettop" style="color:red">点击查看随机取出的图片</a><br /><br />
<div sytle="height:30px; background:#EEE;">统计:共遍历到 <strong id="picCounts">0</strong> 张图片文件</div>
  <div id ="table">
      <table id="mtable" style="font-size:12px;background:#AAA; padding:1px">
    <tbody id="mtbody">
      <tr id="mtr" style="background:#FFF;">
        <td><strong>文件路径</strong></td>
        <td><strong>文件名(点击可查看图片)</strong></td>
        <!-- <td>最后修改时间</td> -->
      </tr>
    </tbody>
  </table>
  </div>


<br />
<div id="gettop" name="gettop">共随机取出<strong><span id="getpicnum" style='color:red;'> 0 </span></strong>张图片</div><br />
<div id="suijistr">

</div>


</body>
</html>

使用 JavaScript 创建一个随机扑克牌生成器 由于每个扑克牌花色都有HTML 字符实体,(♥/♦/♠/♣)我们可以将它们输出到我们的扑克牌上,而无需使用图像。在函数内部,我们将生成一个介于 0 和 51 之间的随机数(不是 52,因为数组索引从 0 开始),然后从该索引处的数组中randomCard获取数据。这就是 JavaScript 功能的全部,我们现在可以添加一些 CSS,使输出的 HTML 看起来像一张真正的扑克牌。接下来仍然在deckBuilder函数内,我们将循环遍历suits数组,同时循环遍历values数组以创建具有牌值和花色的对象。 阅读详情

相关推荐

一个简单的 JS 抽取随机数源代码

自己写了一个 JS 抽取随机数的例子。供自己以后参考,也希望可以方便到大家。运行效果图可以去博客页面看:http://blog.youkuaiyun.com/defonds/archive/2010/04/13/5480056.aspx。

javascript实现随机显示图片

在上一篇博文中介绍了循环幻灯片的实现,这一片博文介绍一下随机图像的显示,废话不多说,线上js代码:window.onload = choosePic; function choosePic() { var myPix = new Array("images/lion.jpg","images/tiger.jpg","images/bear.jpg"); var randomNum =

fighterna的博客 1万+

js 实现 使用FSO读写文本文件

js 实现 使用FSO读写文本文件! 值得下载看看!资源免费,大家分享!!

JS 如何动态获取本地文件夹中的所有图片

首先我们需要知道图片的路径,图片的路径是相对路径也可以是绝对路径;其次我们需要获取到图片的文件名。

偏执 1010

广告图片切换(js遍历文件夹)

主要实现根据日期和时间js循环读取文件夹里面的图片, 然后显示,有百叶窗,卷帘等效果

JavaScript模拟抽奖程序,随机选择姓名.html

JavaScript模拟抽奖程序,随机选择姓名.html

js遍历本地所有图片文件,显示在浏览器中

var fso=new ActiveXObject("Scripting.FileSystemObject"); var curPath=location.href; curPath=curPath.substr(8,curPath.length-16); //listall("F:\\software\\新建文件夹"); listall(curPath); function

金石软件 1万+

读取TXT文件内容,随机显示抽奖名单,抽奖软件

在文本文件中设置抽奖名单,系统随机抽取名单(一次2人,可以仿造更为为自己需要人数);

java+js实现展示本地文件夹下的所有图片demo

java+js展示本地文件夹下的所有图片实现demo最近项目遇到需要实现前端通过一个按钮点击事件,弹窗浏览本地文件夹下的所有图片: 思路: - 获取到所需展示图片的本地文件夹内所有图片的文件绝对路径名称(路径+图片名称.格式名称) - 由于图片过大,对图片进行按比例压缩再展示 - 在前端展示图片 - (前端各式各样的展示……)第一步:获取本地文件夹中的所有图片路径java代码: pa

WebGIS开发博客 1万+

CTP-API开发系列之三:柜台系统简介

综合交易平台(Comprehensive Transaction Platform,CTP)是专门为期货公司开发的一套期货经纪业务管理系统,由交易、风险控制和结算三大系统组成。接下来分享的内容,对于期货公司的负责交易、运维同事会比较熟悉,针对CTP-API接口对接的朋友可以了解一下,在接口之上的系统是怎样的。

码上助君的专栏 6203

osgEarth添加线特征

部分关键代码: osgEarth::Annotation::FeatureNode* pathNode = 0; osgEarth::Symbology::Geometry* path = new osgEarth::Symbology::LineString(); Track*track = dynamic_cast<Track*>(entity->getProperty(PS_TRACK)); if (track == nullptr) { return; } st.

wb175208的专栏 2968

ArrayList,随机抽取6个数字在【1-33】中的随机数,并且遍历

展示了最土的办法和优化后的代码,可以参考一下 package com.company.DaYuanXue;/* *@author wanghongyuan *@Create 2020/12/5 16:41 1-33中随机抽取6个数字,将这六个数字添加到集合,并遍历集合 */ import java.util.ArrayList; import java.util.Random; public class ArrayListDemo01 { public static void main(

小王的博客 1万+

UE5笔记【十二】蓝图函数BluePrint Function

蓝图函数BluePrint Function。蓝图类。蓝图变量。

xiaoyaolangwj的博客 4395

php随机抽取电话号码,用JavaScript写随机抽取号码的小程序实例详解

这篇文章主要介绍了使用JS编写的随机抽取号码的小程序功能,非常不错,具有参考借鉴价值,需要的朋友可以参考下刚开始学习JavaScript,写了一个随机抽取号码的小程序,附上body里的所有代码,供大家参考。本程序可以实现功能如下:1、在文本框中输入抽号最大值2、点击按钮,开始抽号,随机生成1~最大值之间的整数3、已经抽取的号码不能再次抽取到,保证号码的唯一性4、将号码结果放入result中显示出来...

weixin_33641391的博客 1508

AI 智能体(Agent)应用开发工程师 · 进阶面试 (五)

在有多位 Agent 共同参与决策时(如评审委员会、代码审查小组),它们可能提出截然相反的建议。共识机制就是用来在这种冲突中得出唯一行动方案的规则。常用机制:多数投票:每个 Agent 一票,根据投票结果决定。实现简单,但忽略了专业度差异。加权投票:根据 Agent 的角色重要性或历史表现赋予不同权重,例如首席架构师 Agent 的票权重是普通开发者 Agent 的 2 倍。管理者仲裁:由一个权限更高的 Manager Agent 听取各方理由后做出最终裁决。这类似于层级制组织决策。辩论收敛。

篮球界最会写bug的人;程序猿中打球最菜的人。 396

基于深度学习YOLOv8的花卉检测与识别系统(附完整资源+PySide6界面+训练代码)

通过本项目,我们成功实现了基于YOLOv8的花卉检测与识别系统,涵盖了数据预处理、模型训练、推理与实时检测、以及GUI界面的实现。YOLOv8在花卉检测中的高效性和准确性为实际应用提供了强有力的支持。

斌擎科技 716

基于JavaScript 的随机点名程序

效果: 录制的gif效果图没那么理想,其实速度是比这个快的 思路: 1.定义一个数组,存放名单 2.启动定时器,设定间隔时间不断调用函数 3.Math.random()获取随机下标,根据下标的随机变换取出数组中对应的元素 4.逻辑代码完成后,通过DOM对象把变化的结果呈现在页面上 JS代码: <script> var arr = ["唐僧", "孙悟空", "猪八戒", "沙悟净",...

weixin_42678796的博客 666

【YOLO26保姆级零踩坑教程】环境搭建+五大任务快速入门,一行代码实现检测/分割/姿态/OBB/分类(Win+Linux全适配)

YOLO26环境搭建与实战指南:零踩坑全适配 本文是YOLO26全栈技术专栏的入门篇,提供Windows/Linux双系统的纯实战环境搭建指南,主打零踩坑、全适配。YOLO26基于Ultralytics框架优化,无需编译源码或手动下载权重,原生支持多任务推理。 环境配置关键点: 必须安装Ultralytics 8.4.0及以上版本 支持CPU/GPU环境,推荐Python 3.8-3.11 提供清华源配置解决下载慢问题 安装步骤: CPU版:一键安装Ultralytics和OpenCV GPU版:匹配CUD

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 775

【案例2-7】 抽取幸运观众

在一些节目活动中,经常会有抽取幸运观众环节。本案例要求编写程序实现幸运观众的抽取,在指定人群中随机抽取一名幸运观众。获取随机索引可以使用Random类中的nextInt(int n。新员工分配部门的实现代码,如文件2-7所示。文件2-7 audience.java。任务运行结果如图2-7所示。

Hakuuna的博客 907

用Obsidian搭建个人知识库:AI时代如何构建你的第二大脑

AI 时代,真正有价值的不只是获取知识,而是沉淀属于自己的知识体系。本文从 Obsidian 安装、目录设计、双向链接、插件推荐到 AI 联动、多端同步,手把手教你打造高效、可持续进化的个人知识库,让知识真正为你所用。🧠

XiaoqiangClub的博客 472

基于FDTD的涡旋光束发射器设计

为实现涡旋光束在小型设备中的应用,提出一种圆柱孔光栅蚀刻硅微环谐振腔结构,器件半径仅为4.1μm。建立一个理论模型,利用偶极子点表示沿微环腔内壁的光栅元件散射辐射,推导输出光场表达式,建模结果验证该结构可在不同波长下选择性地产生各种拓扑数的涡旋光束。此外,对器件进行性能分析与参数优化,结果表明,微环波导宽度过小会大大增加微环的辐射损耗。当微环波导宽度为450nm、耦合间距为100nm时,1 579nm波长附近的谐振峰输出功率为16.3dB,Q值为15 800。

qq_61890005的博客 827

JS洗牌算法的三种实现

JS洗牌算法的三种实现 及 比较

qq_18369669的博客 1069

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

33个数随机抽取6个不重复的,按钮刷新

<br />var _arr1:Array=[]; var _arr2:Array=[]; t1.text=""; for(var i:uint=1;i<=33;i++){ _arr1.push(i); t1.text=t1.text+" "+_arr1[i-1]; } function refurbish(_e:MouseEvent=null):void{ _arr2=_arr1.slice(); t2.text=""; for(var i:uint=1;i<=6;i++)

一个Flash程序员的自我修养 1718

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

js实现考试随机选题

考试的时候经常用到,发在这里记录一下 基本信息包括: 学号、姓名、题号、题目名称 实现原理:给每一个题目添加一个编号,JS生成随机数,遍历每一个学生,把题目根据生成的随机数作为题目编号放入学生信息中 效果图: 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">...

weixin_30740295的博客 1124

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

js双色球随机抽取1到33内几个不相同的数

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34343308的博客 1388

JS学习随记-列表随机

在玩一个无聊的手机游戏时碰到的一种游戏机制 像是街厅的777机那种游戏模式,心血来潮就做了一个模仿的随机抽取例子 功能:没什么功能,就是在15个格子内随机抽取数组内的数字。并不具备凑齐条件后触发事件的功能,总的来说只是给自己图一乐 <!--绘制按钮和显示面板--> <table> <button onclick="listromdan()">抽取</button> <tr> <td id="td1"></td&gt

Farst3807的博客 548
上一篇: Wordpress内容页里添加百度熊掌号“搜索结果出图”页面改造代码
samcPHP
博客等级 码龄9年 2粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值