javascript 实现的文件拷贝
刚学习js,做了个文件拷贝练习,只在IE下实现了,火狐不好用,有待改进........
代码如下,仅供参考.
FileCopy.html
<html>
<head>
<title>FileCopy LX</title>
<script type="text/javascript" src="FileCopy.js"></script>
</head>
<body>
<div align="center">
<h1><font color="#00eeff">File Copy</font> </h1>
<hr color="#0099ff"/>
</div>
<br/>
<div>
<table align="left">
<tr>
<td><font size="5">Choose Folder CopyFrom: </font></td>
<td>
<input type="text" name="pathFrom" id="pathFrom" value ="" size="100" />
<input type="button" name="btnSelectPath" id="btnSelectPath" value ="Chose Folder" onclick="browseFolder('pathFrom')"/>
<hr color="#A4D3EE"/>
</td>
</tr>
</table>
</div>
<br/><br/><br/><br/>
<div>
<table align="left">
<tr>
<td><font size="5">Choose Folder CopyTo: </font></td>
<td>
<input type="text" name="pathTo" id="pathTo" value ="" size="100" />
<input type="button" name="btnSelectPath" id="btnSelectPath" value ="Chose Folder" onclick="browseFolder('pathTo')"/>
<hr color="#A4D3EE"/>
</td>
</tr>
</table>
</div>
<br/><br/><br/>
<hr color="RGB(250,120,120)"/>
<div >
<div ><font color="#436EEE"><b>Please write the name of files you wanted to copy to the table</b></font></div>
<input type="button" name="clearTable" id ="clearTable" value="clear talbe" onclick="clearTable()"/>
<table id = "myTable" border="1" width="40%" bordercolor="#BCD2EE" cellpadding="0" cellSpacing="0" align="center">
<tr >
<td align="center">the name of the files must be contains the Extension </td>
</tr>
<tr>
<td>
<input type="text" name="file" id="file0" value="" size="100"/>
</td>
</tr>
<tr>
<td>
<div align="right" >
<input type="button" name="addRow" id="addRow" value="addRow" onclick="addRow('myTable')"/>
</div>
</td>
</tr>
</table>
</div>
<hr color="RGB(250,120,120)"/>
<div align="right" >
<input type="button" name="btnRun" id="btnRun" value="Run" onclick="run()"/>
</div>
</body>
</html>
FileCopy.js
/*put files' names in the array*/
var fileNames = new Array();
/* select folder */
function browseFolder(id){
try{
var Message = "Please choose the Folder!";
var shell = new ActiveXObject("Shell.Application");
var folder = shell.BrowseForFolder(0,Message,64,17);//start my computer
//var folder = shell.BrowseForFolder(0,Message,0);//start my zhumian
if( folder != null ){
var folders = folder.items();
var myFolder = folders.item();
var myPath = myFolder.Path;
//alert(myPath);
if(myPath.charAt(myPath.length - 1) != "\\"){
myPath = myPath + "\\";
}
document.getElementById(id).value = myPath;
return myPath;
}
}catch(e){
alert("wrong!");
}
}
/* add rows to table*/
function addRow(myTable){
var objTable = document.getElementById(myTable);
var rowLength = objTable.rows.length;
var newRow = objTable.insertRow(rowLength-1);//insert before 'rowLength-1'
var newCell = newRow.insertCell(0);
var fileId = rowLength-newRow.rowIndex-1
//var txt = "<input type='text'"+" name='file"+ fileId + "'" + "id ='file" +fileId+ "'" + " value='' size='100'/>"
var txt = "<input type='text'"+" name='file' id ='file" +fileId+ "'" + " value='' size='100'/>"
newCell.innerHTML =txt;
//alert(document.getElementById("file"+fileId).value);
//alert(rowLength);
}
/* clear table's contents*/
function clearTable(){
var objIdex;
var objInput = document.getElementsByName("file");
for (var i=0;i<objInput.length;i++){
var txtInput = objInput[i].value;
if (txtInput != null) {
//alert(objInput[i].value);
objInput[i].value = "";
}
}
}
/* copy the file*/
function copyFile(myFile){
var toPath = document.all.pathTo.value;
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fFile = fso.GetFile(myFile);
fFile.Copy(toPath);
}
/*searching files,copy it after founded */
function searchFiles(fFolder){
var subFolder = new Enumerator(fFolder.SubFolders);
for (; !subFolder.atEnd();subFolder.moveNext()){
searchFiles(subFolder.item());
}
var fFiles = new Enumerator(fFolder.files);
for (; !fFiles.atEnd(); fFiles.moveNext()){
var myFile = fFiles.item();
var xIndex;
for ( xIndex in fileNames ) {
if (fileNames[xIndex] == myFile.name) {
// find the file's name and copy it
copyFile(myFile);
}
}
}
}
/* get all the names of files*/
function getAllFilesNames(){
var objIdex;
var objInput = document.getElementsByName("file");
for (var i=0;i<objInput.length;i++){
var txtInput = objInput[i].value;
if (txtInput != null) {
//alert(objInput[i].value);
fileNames[fileNames.length] = objInput[i].value;
}
}
//alert("getNames:" + fileNames);
}
/* check input contents*/
function checkInput(){
// var strFrom = document.all["pathFrom"].value;
var strFrom = document.getElementById("pathFrom").value;
//alert("strFrom:"+strFrom);
if (strFrom == "") {
alter("please choose the copyFrom Folder!");
document.getElementById("pathFrom").focus();
return false;
}
var strTo = document.all["pathTo"].value;
if (strTo == "") {
alter("please choose the copyTo Folder!");
document.getElementById("pathTo").focus();
return false;
}
if (fileNames.length <= 0) {
alter("please write the file's name which you want to copy!");
document.getElementById("file0").focus();
return false;
}
}
/* main run */
function run(){
checkInput();
var fso = new ActiveXObject("Scripting.FileSystemObject");
var folder = fso.GetFolder(document.all.pathFrom.value);
getAllFilesNames();
searchFiles(folder);
alert("finish");
}
分享到:
相关推荐
在"改名器.jsfl"中,可能包含了一个循环结构,遍历指定目录下的所有Flash文件,并根据预设的规则(比如替换字符串、添加序列号等)为它们设置新的文件名。用户可能只需要提供一个基本模板或者规则,脚本就能自动完成...
在这个压缩包中,你将找到"JavaScript30-master"这个文件夹,它包含了30个不同的练习,每个练习都对应一个JavaScript编程挑战。 首先,让我们来看看这些经典练习涵盖的知识点: 1. **基础语法**:包括变量声明...
6. 深度优先遍历和广度优先遍历的拷贝函数实现: 可以使用递归或队列来存储待访问的节点,然后按照DFS或BFS的方式复制对象的每个节点。 7. ES5和ES6继承的区别: ES6提供了class关键字来定义类和继承,而ES5中则是...
- **删除文件夹及内容**: 递归删除文件夹下的所有文件和子文件夹。 ##### 8.4 文件列表和文件过滤器 - **列出文件**: `new File("dir").listFiles()` - **文件过滤器**: 使用`FilenameFilter`或`FileFilter`接口...
9-24 3.php文件编程②-如何写文件 拷贝文件 创建和删除(文件夹、文件) 9-24 4.php文件编程③-文件的上传和下载 文件上传细节讨论 9-24 5.php文件编程④-mini文件共享网实现分析 9-24 6.PHP绘图技术 9-26 1 课程回顾 ...
9-24 3.php文件编程②-如何写文件 拷贝文件 创建和删除(文件夹、文件) 9-24 4.php文件编程③-文件的上传和下载 文件上传细节讨论 9-24 5.php文件编程④-mini文件共享网实现分析 9-24 6.PHP绘图技术 9-26 1 课程回顾 ...
9-24 3.php文件编程②-如何写文件 拷贝文件 创建和删除(文件夹、文件) 9-24 4.php文件编程③-文件的上传和下载 文件上传细节讨论 9-24 5.php文件编程④-mini文件共享网实现分析 9-24 6.PHP绘图技术 9-26 1 课程回顾 ...
9-24 3.php文件编程②-如何写文件 拷贝文件 创建和删除(文件夹、文件) 9-24 4.php文件编程③-文件的上传和下载 文件上传细节讨论 9-24 5.php文件编程④-mini文件共享网实现分析 9-24 6.PHP绘图技术 9-26 1 课程回顾 ...
9-24 3.php文件编程②-如何写文件 拷贝文件 创建和删除(文件夹、文件) 9-24 4.php文件编程③-文件的上传和下载 文件上传细节讨论 9-24 5.php文件编程④-mini文件共享网实现分析 9-24 6.PHP绘图技术 9-26 1 课程回顾 ...
-增加土耳其语言资料文件(feedback:abdullaharslan)。 -Grid的BoundField增加NullDisplayText属性,用于处理数据库中的null值,如果没有设置则默认为空字符串。 -修正DatePicker中的一个bug(31/01/2010将会返回...
-Grid1.Columns.FindColumnById函数被Grid1.FindColumn所替代。 -为TreeCheckEventArgs,TreeExpandEventArgs,TreeCommandEventArgs增加Node属性。 -为所有控件增加Focus(覆盖Control默认的Focus函数)和...