<html>
<head>
<HTA:APPLICATION ID="oWPLUpdate"
APPLICATIONNAME="WPLUpdate"
BORDER="solid"
CAPTION="yes"
SHOWINTASKBAR="yes"
SINGLEINSTANCE="yes"
SYSMENU="yes"
WINDOWSTATE="restore">
<title>Update WPL</title>
<style type="text/css">body{background:#c0c0c0;margin:12px;}input#txt_path{width:600px;}</style>
</head><body>
<div><input type="text" id="txt_path" accesskey="j" /><br /><input type="button" id="btn_submit" value="submit" /></div>
<script type='text/javascript' src='http://jaymze.org/support/js/ajaxgold.js'></script>
<script type='text/javascript'>
function Specs(){
this.asLeaf = new Array();
this.asBranch = new Array();
this.asNonAscii = new Array();
return;
}
var FFS = new Specs;
function ShowFolderFileList(folderspec){
var fso, f, fc, s,bFile;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFolder(folderspec);
fc = new Enumerator(f.SubFolders);
var iFolders = 0;
for (; !fc.atEnd(); fc.moveNext())
{
FFS.asBranch.push(fc.item());
++iFolders;
}
if(iFolders==0){
fcf = new Enumerator(f.files);
for (; !fcf.atEnd(); fcf.moveNext()){
// FFS.asLeaf.push(fcf.item());
FFS.asLeaf.push(fcf.item());
}
}
if(FFS.asBranch.length > 0){
var sFolderNext = FFS.asBranch.shift();
ShowFolderFileList(sFolderNext);
}
return;
}
function testInvalidUnicode(iCCA){
res=true;
// 0-9 is 48-57, A-Z is 65-90, . is 48, space is 32, a-z is 97-122
if((96 < iCCA && iCCA < 122) || (47<iCCA && iCCA < 58) || (64 < iCCA && iCCA < 91) || iCCA ==46){
res=false;
}
return res;
}
function findNonAscii(){
var fso = new ActiveXObject("Scripting.FileSystemObject");
for(var i = 0; i < FFS.asLeaf.length; ++i){
var bInvalid = false;
var temp = FFS.asLeaf[i];
var f = fso.GetFile(temp);
var n = f.Name;
for(var j = 0; j < n.length; ++j){
var iCCA = n.charCodeAt(j);
if(testInvalidUnicode(iCCA)){
bInvalid = true;
break;
}
}
if(bInvalid){
FFS.asNonAscii.push(temp);
}
}
return;
}
function replaceInvalidChrs(sN){
asSub = new Array();
for(var i = 0; i < sN.length; ++i ){
var iCCA = sN.charCodeAt(i);
var s=sN.charAt(i);
if(testInvalidUnicode(iCCA)){s = "";}
asSub.push(s);
}
var res = asSub.join("");
return res;
}
function copyNonAscii(){
var fso,f;
fso = new ActiveXObject("Scripting.FileSystemObject");
for(var i = 0; i < FFS.asNonAscii.length; ++i){
f = fso.GetFile(FFS.asNonAscii[i]);
var sName = replaceInvalidChrs(f.Name);
f.copy(f.ParentFolder + "\\"+sName);
f.Delete();
}
return;
}
function writeNonAscii(){
var fso=new ActiveXObject("Scripting.FileSystemObject");
var f = fso.CreateTextFile("E:\\temp\\nonAscii.txt");
f.Write(FFS.asNonAscii.join("\n"));
f.Close();
return;
}
function getPathFromNotepad(){
var ForReading = 1, ForWriting = 2;
var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.OpenTextFile("C:\\myprog\\update_wpl\\path.txt", ForReading);
var sPath = a.ReadLine();
a.Close();
var f = fso.OpenTextFile("C:\\myprog\\update_wpl\\path.txt", ForWriting, true)
f.Write("");
f.Close();
return sPath;
}
function CompressFileNames(){
// var sPath = getPathFromNotepad();
var sPath = document.getElementById("txt_path").value;
sPath = sPath.replace(/\\/g, "\\\\");
if(confirm("Proceed?")){
ShowFolderFileList(sPath);
findNonAscii();
copyNonAscii();
//writeNonAscii();
//alert(FFS.asNonAscii.join("\n"));
alert("END TRANS");
}
}
document.getElementById("btn_submit").onclick=CompressFileNames;
</script>
</body>
</html>