hello all ,
i'm new to C# and i have a problem, i created a program that categorize my files into folders and subfolders.
and i want to run a script test.bat that will run a python script to the files with extension .gb in the subfolders and this script will create a txt file containing the result for all the .gb files in the subfolder where the script is found,
so i placed a copy of test.bat inside each folder and subfolder and i saved the path of each one in a list ,
and after this i tried to loop the list of paths and run the script .
but it's not running as wanted , because all the txt files are created in the first folder with wrong results , but when i go to the folders and run the test.bat manually it gives the wanted results , but in the program , it's not working
soo i need your help plz
that's my code
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Diagnostics;
namespace Abdallah_Project
{
public class Program
{
static void Main(string[] args)
{
List<String> list = new List<String>();
//File.WriteAllText("test.bat", "python ../skew.py -e"+"A" +"-e"+"C" +"-e"+"G" +"-e"+"T"+ "*.gb -o test.txt");
// String[] allfiles = null;
int startColumnIndex, finishColumnIndex;
Console.WriteLine("Enter the index of start column:");
startColumnIndex = int.Parse(Console.ReadLine());
Console.WriteLine("Enter the index of end column:");
finishColumnIndex = int.Parse(Console.ReadLine());
if (File.Exists("conf.txt") == false)
throw new Exception("Configuration file not found");
string[] confStr = File.ReadAllLines("conf.txt");
for (int rowIndex = 0; rowIndex < confStr.Length; rowIndex++)
{
string[] cells = confStr[rowIndex].Split(' ');
if (startColumnIndex < 0 || finishColumnIndex > cells.Length - 1)
{
Console.Error.WriteLine(cells[0] + ", invalid column indexes");
continue;
}
string fileName = cells[0] + ".gb";
if (File.Exists(fileName) == false)
{
Console.Error.WriteLine(cells[0] + ", file not found");
continue;
}
string newPath = "";
File.WriteAllText("test.bat", "python C:\\Python27\\mtdb1\\src\\skew.py -e\"A\" -e\"C\" -e\"G\" -e\"T\" *.gb -o " + cells[finishColumnIndex] + ".txt");
for (int columnIndex = startColumnIndex; columnIndex <= finishColumnIndex; columnIndex++)
{
if (Directory.Exists(cells[columnIndex]) == false)
{
Directory.CreateDirectory(newPath + cells[columnIndex] + "\\");
}
newPath += cells[columnIndex] + "\\";
if (File.Exists(newPath + "test.bat") == false)
{
File.Copy("test.bat", newPath + "test.bat");
list.Add(newPath + "test.bat");
}
}
File.Move(fileName, newPath + fileName);
Console.WriteLine(fileName + " -moved-> " + newPath + fileName);
}
int co = 0;
for (int i = 0; i < list.Count; i++)
{
co++;
}
//Process pr = new Process();
for (int i = 0; i < list.Count; i++) // Loop through List with for
{
Process pr = Process.Start(list[i]);
pr.WaitForExit();
Console.WriteLine("File test path is " + list[i]);
//Console.WriteLine("Process is still running");
}
Console.WriteLine("\n DONE ;) !!!");
Console.Read();
}
}
}
i appreciate the help