2016-08-31 2 views
-2

Я пытаюсь найти все файлы, соответствующие *.XMODEL_EXPORT, и автоматически конвертировать их в формат .BIN.invoke cmd в winforms C#

Вот код, который я имею до сих пор.

public DevComponents.DotNetBar.Controls.RichTextBoxEx richTextBoxEx1; 

public static string path { get; set; } 

public static string mainpath { get; set; } 

public bo3_bincs(DevComponents.DotNetBar.Controls.RichTextBoxEx elfenliedtofan5txt) 
{ 
    richTextBoxEx1 = elfenliedtofan5txt; 
} 

public void check64() 
{ 
    if(mainpath == null) 
    { 
     string programFilesX86 = Environment.ExpandEnvironmentVariables("%ProgramFiles(x86)%"); 
     mainpath = programFilesX86; 
    } 
    else 
    { 
     string programFiles = Environment.ExpandEnvironmentVariables("%ProgramW6432%"); 
     mainpath = programFiles; 
    } 
} 

public void findpath() 
{ 
    if (path == null) 
    { 
     MessageBox.Show(mainpath); 
     string elfenlied = mainpath + @"/aaa/"; 
     string[] oDirectories = Directory.GetFiles(elfenlied, "*.XMODEL_EXPORT", SearchOption.AllDirectories); 
     foreach (string oCurrent in oDirectories) 
      richTextBoxEx1.Text = oCurrent; 
    } 
    else 
    { 

    } 
} 

public void convertbin() 
{ 
    path = mainpath + "//aaa//"; 
    MessageBox.Show(path); 
    Process bin = new Process(); 
    bin.StartInfo.FileName = "cmd.exe"; 
    bin.StartInfo.Arguments = "cd " + path; 
    bin.StartInfo.RedirectStandardOutput = true; 
    bin.StartInfo.UseShellExecute = false; 
    //bin.StartInfo.Arguments = path; 
    //bin.StartInfo.RedirectStandardInput = true; 
    //bin.StartInfo.Arguments = "rename *.**.bin"; 
    bin.Start(); 
    richTextBoxEx1.Text = bin.StandardOutput.ReadToEnd(); 
} 

Я хочу, чтобы преобразовать все файлы из указанной папки, но это просто недобросовестный в каталог ниже папки Visual Studio Debug.

ответ

0

В StartInfo есть свойство WorkingDirectory, которое вы можете использовать по своему желаемому пути. Но помните, что если вы запустите cmd.exe без/C или/K, он немедленно выйдет без выполнения ваших аргументов команды. Добавить/C или/K вашего StartInfo.Arguments (лучше/K, чтобы увидеть результат ваших усилий)

path = mainpath + "//aaa//"; 
    MessageBox.Show(path); 
    Process bin = new Process(); 
    bin.StartInfo.FileName = "cmd.exe"; 
    bin.StartInfo.WorkingDirectory = path; 
    //bin.StartInfo.Arguments = "cd " + path; 
    bin.StartInfo.Arguments = "/K dir"; 
+0

спасибо когда-нибудь так много, что работало отлично просто, чтобы узнать, как получить его теперь работать с процесс преобразования, потому что i cmd может преобразовать файл в .bin, просто нужно его обработать, не уверен, как в данный момент – elfenliedtopfan5