<html>
<head>
</head>
<body>
源目录:<input id="txtOld" value="F:\开发\fso"></input>
新目录:<input id="txtNew"></input>
对比:<input id="btnCompare" onclick="compareFile()" type="button" value="compare"></input>
<br/>
<textarea id="txtContent" style="width:100%;height:100%"></textarea>
<script>
var subfolder;
var thefile;
var filename;
var FSO = new ActiveXObject("Scripting.FileSystemObject");
//var rootFolder = FSO.getFolder();
var fileArray = [];
var newFileObj = {};
var deleteFileArray = [];
var oldFolderPath = "", newFolderPath = "";

function $(id)
{
return document.getElementById(id);
}

function compareFile()
{
fileArray = [];
deleteFileArray = [];
oldFolderPath = $("txtOld").value;
newFolderPath = $("txtNew").value;
Scan(newFolderPath);
$("txtContent").value = fileArray.join("\r\n");
ScanOldFolder(oldFolderPath );
// alert(fileArray.length);
alert(deleteFileArray.length);
}

function ScanOldFolder(folderName)
{
var folder = FSO.getFolder(folderName);
if (folder.subFolders.count > 0)
{
var fenum = new Enumerator(folder.subFolders);
for (var i = 0 ; !fenum.atEnd(); fenum.moveNext(),i++){
//datas.WriteLine("datas["+ i +"] = \""+ fenum.item().Name +"\";") ;
Scan(fenum.item().path);
}
}
//'下面一段将文件夹中的文件路径显示在LABEL上并刷新窗体
if (folder.Files.count > 0)
{
var fenum = new Enumerator(folder.Files);
for (var i = 0 ; !fenum.atEnd(); fenum.moveNext(),i++){
//datas.WriteLine("datas["+ i +"] = \""+ fenum.item().Name +"\";") ;

var newPath = fenum.item().path.replace(newFolderPath + "\", "");
if (typeof newFileObj[newPath] != "undefined")
{
deleteFileArray.push(newPath);
}
}
}
}

function Scan(folderName)
{
var folder = FSO.getFolder(folderName);
if (folder.subFolders.count > 0)
{
var fenum = new Enumerator(folder.subFolders);
for (var i = 0 ; !fenum.atEnd(); fenum.moveNext(),i++){
//datas.WriteLine("datas["+ i +"] = \""+ fenum.item().Name +"\";") ;
Scan(fenum.item().path);
}
}
//'下面一段将文件夹中的文件路径显示在LABEL上并刷新窗体
if (folder.Files.count > 0)
{
var fenum = new Enumerator(folder.Files);
for (var i = 0 ; !fenum.atEnd(); fenum.moveNext(),i++){
//datas.WriteLine("datas["+ i +"] = \""+ fenum.item().Name +"\";") ;
var oldFile = fenum.item().path.replace(oldFolderPath+"\", "");
fileArray.push(oldFile);
newFileObj[oldFile] = oldFile;
}
}
}
</script>
</body>
</html>

fso查找被删除的文件的更多相关文章

  1. Linux系统中查找、删除重复文件,释放磁盘空间。

    在Linux系操作系统中查找并删除重复文件的方法的确有很多,不过这里介绍的是一款非常简单实用的软件FSlint.FSlint是一个重复文件查找工具,可以使用它来清除不必要的重复文件,笔者经常使用它来释 ...

  2. Linux查找并删除重复文件的命令行fdupes工具,dupeGuru图形工具

    查了几十个网页,找到这个接近满意的解决方案http://unix.stackexchange.com/questions/146197/fdupes-delete-files-aft... 不过正则里 ...

  3. 利用lsof命令查找已经删除的文件来释放磁盘空间

    测试环境一台服务器/目录空间使用率达到97%,但是通过du -sh *发现实际空间没用到那么多,初步怀疑,之前删除的文件,有运行中的进程一直占用,导致空间没有释放,如图通过du -sh *发现共实际使 ...

  4. 在 Linux 中查找和删除重复文件

    原文链接:https://www.linuxprobe.com/linux-FSlint.html FSlint同时具有GUI和CLI模式.因此,对于新手来说,这是一个用户友好的工具.FSlint不仅 ...

  5. python查找并删除相同文件-UNIQ File-script版本

    今天用wxPython做了一个GUI程序,实现查找指定目录内的相同文件,主要原理是计算文件的md5值(计算前先找出文件大小相同的文件,然后计算这些文件的md5值,而不是所有文件都计算,大大减少了md5 ...

  6. python查找并删除相同文件-UNIQ File-wxPython版本

    今天用wxPython做了一个GUI程序,我称之为UNIQ File,实现查找指定目录内的相同文件,主要原理是计算文件的md5值(计算前先找出文件大小相同的文件,然后计算这些文件的md5值,而不是所有 ...

  7. python查找并删除相同文件-UNIQ File-wxPython-v6

    相比第一版,新增:菜单,对话框,文件过滤器,操作结果保存,配置功能(自己写了一个读写配置文件的功能),提示语优化,模块分化更合理. 截图: 源代码: UniqFile-wxPython-v6.py: ...

  8. awk删除重复文件

    #!/bin/bash #查找并删除重复文件,每个文件只保留1份 ls -LS --time-style=long-iso | awk 'BEGIN { getline; getline; name1 ...

  9. 有关文件夹与文件的查找,删除等功能 在 os 模块中实现

    最近在写的程序频繁地与文件操作打交道,这块比较弱,还好在百度上找到一篇不错的文章,这是原文传送门,我对原文稍做了些改动. 有关文件夹与文件的查找,删除等功能 在 os 模块中实现.使用时需先导入这个模 ...

随机推荐

  1. 关于mouse_event和sendinput无效的原因

    关于mouse_event和sendinput无效的原因 SetCursorPos 有用,   于mouse_event和sendinput 无用, 导致问题不清晰,  原来是我换了杀毒软件, 360 ...

  2. Source Insight 3.X utf8支持插件震撼发布

    继上次SI多标签插件之后,因为公司内部编码改为utf8编码,因此特意做了这个Source Insight 3.X utf8插件. 下载地址:[点我] 安装说明: 解压msimg32.dll sihoo ...

  3. yii2.0场景的使用

  4. 随手记一次用C#正则表达式获取下拉菜单html标签<select>以及相关属性值

    随手记一次用C#正则表达式获取下拉菜单html标签<select>以及相关属性值 1:有如下html: .................. <select id="aaa ...

  5. Instsrv.exe和Srvany.exe的使用方法

    要把应用程序添加为服务,你需要两个小软件:Instsrv.exe和Srvany.exe.Instsrv.exe可以给系统安装和删除服务,Srvany.exe可以让程序以服务的方式运行.这两个软件都包含 ...

  6. shell计算小问题

    1.shell处理两数相加时报错: req_all=$(($hits+$misses)) error: invalid arithmetic operator (error token is &quo ...

  7. jtree添加节点

    利用Model添加了节点之后,需要reload树

  8. LA 3942 - Remember the Word (字典树 + dp)

    https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_probl ...

  9. C++ Sqlite3

    /* 回调函数的格式如下: int sqlite_callback( void* pv, //由 sqlite3_exec() 的第四个参数传递而来 int argc, //表的列数 char** a ...

  10. oracle同一个数据库实例不同的用户之间的表、序列授权操作

    1.背景:用户jtuser中有jtproduct中表A,B的同义词,在用户jtuser中向表A,B插入数据,提示“权限不够” 2.将A,B表授权给jtuser用户 $ sqlplus / as sys ...