-1

我对 Javascript 很陌生。我想从特定文件夹中获取文件名和扩展名。为此,我使用 ActiveXObject 并使用 GetFolder 转到文件夹,然后枚举每个单独的文件。代码如下。

<html>
<script type='text/javascript'>
var myFileNameArray = new Array;
var myFileNameArray = new Array;
function ReadFromFile()
{
    var i;
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fsofolder = fso.GetFolder("C:\\Users\\Divya.R");
var colFiles  = fsofolder.Files;
var fc = new Enumerator(colFiles);
for (; !fc.atEnd(); fc.moveNext() )
    { 
        msg += fc.item() + ";";
    }
myFilePathArray = msg.split(";");
for(i=0;i<=myFilePathArray.length;i++)
    {
        myFileNameArray[i] = myFilePathArray[i].split("\\");
    }
document.write(myFileNameArray[0]);
}
</script>
<body onload='ReadFromFile()'>
</body>
</html>

我将从我应该获取文件名的每个数组元素中获取 myFilePathArray 中的完整文件路径。为此,我试图基于 '/' 再次拆分,然后考虑获得第 1 个数组长度元素。但是最后一个文档写入返回是一个空白页。它不会拆分 myFilePathArray。请让我知道这有什么问题。

问候,

分区

4

2 回答 2

0

由于 \ 是一个转义字符,它将被忽略。我找到了一个对我有用的解决方案。代码如下。

var msg = "C:\\Users\\Divya.R\\Data.txt;C:\\Users\\Divya.R\\Test2.csv";
var regex = /\\/g;
var fileName="";
var FilePath = msg.replace(regex, "\\\\");
//document.write(FilePath);
var myArray1 = new Array;
var myArray2 = new Array;
myArray1 = FilePath.split(";");
myArray2 =myArray1[0].split("\\");
    for(var i=0;i<=myArray1.length-1;i++)
    {
         myArray2= myArray1[i].split("\\");
         fileName = fileName+myArray2[myArray2.length-1];



    }
//alert(myArray2[myArray2.length-1]);
alert(fileName);

问候, 迪维亚

于 2013-11-20T05:45:43.643 回答
0

一个简单substrlastIndexOf就足以让你的部分:

var path = "C:\\Users\\Divya.R\\Data.txt";
var fileName = path.substr(path.lastIndexOf("\\") + 1);
var ext = path.substr(path.lastIndexOf('.') + 1); // txt
于 2014-03-07T18:35:36.813 回答