Как искать файлы в переменных путях на локальном компьютере, используя JavaSript? - PullRequest
1 голос
/ 20 апреля 2020

У меня есть небольшая программа, написанная на js (, она запускается на локальном компьютере, а не в браузере ), которая ищет TXT-файлы в клиентских папках, а затем объединяет их в одну. В настоящее время пути выглядят так:

c:\root\\FTP\Customer\Orders\Client1
c:\root\\FTP\Customer\Orders\Client2
c:\root\\FTP\Customer\Orders\Client3
c:\root\\FTP\Customer\Orders\Client4
+100

Следующий код видит файлы, появляющиеся в каждой папке Client *.

var VariablePath = "c:\\root\\FTP\\Customer\\Orders"

Проблема возникла из-за того, что вышеуказанный путь должен быть расширен в описанный ниже способ:

c:\root\FTP\Customer\Orders\Client1\CSV
c:\root\FTP\Customer\Orders\Client2\CSV
c:\root\FTP\Customer\Orders\Client3\CSV
c:\root\FTP\Customer\Orders\Client4\CSV
+100

Мой вопрос: как сохранить путь в var VariablePath (или другим способом), чтобы загружались только файлы из последней папки (CSV), а не из папка Client *, как и раньше. Я пробовал много комбинаций, но ни одна не работала.

var VariablePath = "c:\\root\\FTP\\Customer\\Orders\\."
var VariablePath = "c:\\root\\FTP\\Customer\\Orders\\.\\"
var VariablePath = "c:\\root\\FTP\\Customer\\Orders\\.\\."
var VariablePath = "c:\\root\\FTP\\Customer\\Orders\\.\\CSV"

Пожалуйста, помогите изменить следующую программу:

var VariablePath = "c:\\root\\FTP\\Customer\\Orders."

var KMTPath = VariablePath

try
{
    merge(KMTPath, "KMT");
}
catch(e) {

    WriteErrorToLog(e, "KMT");
}


  function WriteErrorToLog(e, org)
  {
      var today = new Date();   

      objFile.WriteLine ("<br><b>*******************************************************</b>");
      objFile.WriteLine ("<br><b>An Error has occured during ToolBoss Processing of  "+org+ " files at "+today+"</b>");
      objFile.WriteLine("<br><b>"+e+"</b>")   
      objFile.WriteLine("<br><b>"+e.number & 0xFFFF+"</b>")   
          objFile.WriteLine("<br><b>"+e.description +"</b>")
          objFile.Close();

   }


  function merge(path, org)
  {
  var today  = new Date();
  var NewFileName;

  TempFSO = new ActiveXObject("Scripting.FileSystemObject");



  DoesFileExist = ReportFileStatus("c:\\root\\FTP\\Customer\\mergelog_CSV.html")

  if (DoesFileExist == 0)
  {
    objFSO = new ActiveXObject("Scripting.FileSystemObject");
    objFile = objFSO.CreateTextFile("c:\\root\\FTP\\Customer\\mergelog_CSV.html", true);
    objFile.Close();

  }
  else
    objFSO = new ActiveXObject("Scripting.FileSystemObject");
  objFile = objFSO.OpenTextFile("c:\\root\\FTP\\Customer\\mergelog_CSV.html", 8, true);



  objFile.WriteLine ("<HTML> <HEAD><TITLE>ToolBoss FileMerge Log File</TITLE></HEAD><BODY>");
  objFile.WriteLine ("<br><b>Awake on " + today + "....Checking for files under "+path+"</b>");

  FilesExist = CheckForFiles(path);


  if (FilesExist == 1)
  {


  if (org == "KMT")
    {

       var TempFileName = ""+ (today.getMonth()+1)+ today.getDate()+today.getYear()+today.getHours()+today.getMinutes()+today.getSeconds()+".txt"
       var NewFileName  = "c:\\root\\FTP\\Customer\\KMTORDERS_CSV_"+ TempFileName;
    }

  tempfile=TempFSO.CreateTextFile(NewFileName,true);  



  objFile.WriteLine ("<table border='1' width='50%'>");
  objFile.WriteLine ("<tr><td bgcolor='#FFFF00'><h3>Folder/File</h3></td><td bgcolor='#00FFFF'><h3>Size</h3></td><td bgcolor='#FFFF00'><h3>Date Written</h3></td><td bgcolor='#00FFFF'><h3>Records</h3></td>");
  objFile.WriteLine ("<tr>");

   var fso, f, fc, s,f2;
   var fso2, f2, f12, fc2, s2;
   var filename;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.GetFolder(path);
   fc = new Enumerator(f.SubFolders);
   s = "";
   NewString="";
   for (; !fc.atEnd(); fc.moveNext())
   {
      NewString = fc.item();
      s += fc.item();
      s += "\n";



       objFile.WriteLine ("<td bgcolor='#FFFF00'><b>" + NewString + "</b></td><td bgcolor='#00FFFF'>&nbsp;</td><td bgcolor='#FFFF00'>&nbsp;</td><td bgcolor='#00FFFF'>&nbsp;</td>");
       fso2 = new ActiveXObject("Scripting.FileSystemObject");
       f2 = fso2.GetFolder(fc.item());
       fc2 = new Enumerator(f2.files);
       s2 = "";
       objFile.WriteLine ("</tr>");

       for (; !fc2.atEnd(); fc2.moveNext())
       {

        objFile.WriteLine ("<tr>");
          s2 += fc2.item();
          s2 += "\n";
          f2 = fso.GetFile(fc2.item());


          objFile.WriteLine ("<td bgcolor='#FFFF00'> <font size='1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" + ShowBaseName(fc2.item())+"</td><td bgcolor='#00FFFF'><font size='1'>"+f2.Size+"</td>"+"<td bgcolor='#FFFF00'><font size='1'>"+f2.DateLastModified+"</td>" +"</td></font>"+"<td bgcolor='#00FFFF'><font size='1'>"+CountRecordsInFile(fc2.item())+"</td>" +"</td></font>");
        filename = fso.GetFile(fc2.item());
    //    WScript.echo("Filename="+filename+"....size="+filename.size);

              if (filename.size > 0) {
                MergeFile(fc2.item(),tempfile);
              }
              else if (filename.size == 0) {
                fso.DeleteFile(filename);
                objFile.WriteLine ("<td bgcolor='#FFFF00'> <font size='1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ZERO LENGTH FILE(" + filename + ") deleted...</td><td bgcolor='#00FFFF'><font size='1'></td>"+"<td bgcolor='#FFFF00'><font size='1'></td>" +"</td></font>"+"<td bgcolor='#00FFFF'><font size='1'></td>" +"</td></font>");

          }
       }


    objFile.WriteLine ("</tr>");
   }

objFile.WriteLine ("</table>");
objFile.Writeline ("<br>Processing ends......."+CountRecordsInFile(NewFileName)+" Records have been written to file <b><i>"+NewFileName+"</i></b>");
objFile.WriteLine ("<br><b>------------------------------------------------------------------------------------------------------------------</b><br>");
objFile.WriteLine ("</BODY> </HTML>");

objFile.Close();

tempfile.Close();


var objFileCopy = new ActiveXObject("Scripting.FileSystemObject");
    objFileCopy.CopyFile (NewFileName, "c:\\root\\FTP\\Customer\\KMTORDERS_CSV_"+ TempFileName);


}
else 
{
  objFile.WriteLine ("<br><b>NoFiles found.....Going to sleep....</b>");
  objFile.WriteLine ("<br><b>------------------------------------------------------------------------------------------------------------------</b><br>");
  objFile.WriteLine ("</BODY> </HTML>");

  objFile.Close();

}





function CheckForFiles(filespec)
{
   var fso, f, fc, s,f2;
   var fso2, f2, f12, fc2, s2;
   var fileexist;

   fileexist=0
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.GetFolder(filespec);
   fc = new Enumerator(f.SubFolders);
   s = "";
   NewString="";
   for (; !fc.atEnd(); fc.moveNext())
   {
      NewString = fc.item();
      s += fc.item();
      s += "\n";

       fso2 = new ActiveXObject("Scripting.FileSystemObject");
       f2 = fso2.GetFolder(fc.item());
       fc2 = new Enumerator(f2.files);
       s2 = "";
       for (; !fc2.atEnd(); fc2.moveNext())
       {
          s2 += fc2.item();
          s2 += "\n";
          fileexist = 1;                   
          f2 = fso.GetFile(fc2.item());

       }



   }
   return(fileexist);

}
function ShowBaseName(filespec)
{
   var fso, s = "";
   fso = new ActiveXObject("Scripting.FileSystemObject");
   s += fso.GetFileName(filespec);
   return(s);
}


function CountRecordsInFile(filespec)
{
      var fso, f, r, count;
      var ForReading = 1, ForWriting = 2;
      count=0;
      fso = new ActiveXObject("Scripting.FileSystemObject");
      f = fso.OpenTextFile(filespec, ForReading);
       while (!f.AtEndOfStream)
       {
            count++;
            r =  f.ReadLine();
       }
         f.Close( );

      return(count);

}
function CreateTempFile()
{
   var tfolder, tfile, tname, fname, TemporaryFolder = 2;
   tfolder = TempFSO.GetSpecialFolder(TemporaryFolder);
   tname = TempFSO.GetTempName();
   tfile = tfolder.CreateTextFile(tname);
   return(tfile);
}

function MergeFile(filespec,tempfile)
{
  var ReadFile, WriteFile;
  var ReadPTR, WritePTR;
  var LineRead;

  ReadFile = new ActiveXObject("Scripting.FileSystemObject");
  ReadPTR = ReadFile.OpenTextFile(filespec, 1);
  WriteFile = new ActiveXObject("Scripting.FileSystemObject");
  LineRead = ReadPTR.ReadLine();

   while (!ReadPTR.AtEndOfStream)
         {

              tempfile.WriteLine(LineRead);
              LineRead= ReadPTR.ReadLine();
       }
   tempfile.WriteLine(LineRead);
   ReadPTR.Close();
   ReadFile.DeleteFile(filespec);


}

function ReportFileStatus(filespec)
{
   var fso, s = filespec;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   if (fso.FileExists(filespec))
      s = 1;
   else 
      s = 0;
   return(s);
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...