我对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 th元素。但是,最后一个文档写入返回是空白页。它不会拆分 myFilePathArray。请让我知道这有什么问题。
问候
迪夫
由于 \ 是转义字符,因此将被忽略。我找到了一个对我有用的解决方案。代码如下。
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);
问候迪维亚
一个简单的substr
和lastIndexOf
就足以让你得到你的零件:
var path = "C:\Users\Divya.R\Data.txt";
var fileName = path.substr(path.lastIndexOf("\") + 1);
var ext = path.substr(path.lastIndexOf('.') + 1); // txt