system () à c # sans appeler cmd.exe

comment traduire system (“”) en C # sans appeler cmd.exe? edit: j’ai besoin de jeter quelque chose comme “dir”

Comme d’autres personnes l’ont noté, il s’agit de Process.Start . Exemple:

 using System.Diagnostics; // ... Process.Start(@"C:\myapp\foo.exe"); 

Si j’ai bien compris votre question, vous recherchez Process.Start .

Voir cet exemple (tiré de la documentation):

 // Opens urls and .html documents using Internet Explorer. void OpenWithArguments() { // url's are not considered documents. They can only be opened // by passing them as arguments. Process.Start("IExplore.exe", "www.northwindtraders.com"); // Start a Web page using a browser associated with .html and .asp files. Process.Start("IExplore.exe", "C:\\myPath\\myFile.htm"); Process.Start("IExplore.exe", "C:\\myPath\\myFile.asp"); } 

modifier

Comme vous avez dit que vous aviez besoin de quelque chose comme la commande “dir”, je vous suggère de regarder DirectoryInfo . Vous pouvez l’utiliser pour créer votre propre liste de répertoires. Par exemple (également à partir de la documentation):

 // Create a DirectoryInfo of the directory of the files to enumerate. DirectoryInfo DirInfo = new DirectoryInfo(@"\\archives1\library"); DateTime StartOf2009 = new DateTime(2009, 01, 01); // LINQ query for all files created before 2009. var files = from f in DirInfo.EnumerateFiles() where DirInfo.CreationTimeUtc < StartOf2009 select f; // Show results. foreach (var f in files) { Console.WriteLine("{0}", f.Name); } 

Pas sûr si je comprends votre question. Vous cherchez Process.Start?

 I need to throw something like "dir" 

Si vous devez exécuter DIR, vous devez appeler cmd.exe, car dir est interne à cmd.exe.

Voulez-vous réellement l’équivalent? Vous ne pouvez pas dépendre de ce que vous essayez de faire.

Par exemple, l’appel de copy partir de la ligne de commande a son équivalent en C #, File.Copy , car dir File.Copy toute une classe Directory pour obtenir des informations (deux exemples rapides parmi des milliers). En fonction de vos besoins, C # a très probablement une bibliothèque / fonction pour la commande spécifique que vous essayez d’exécuter, généralement une méthode plus robuste, au lieu d’un gestionnaire global.

Si vous recherchez l’objective “invoquez-le”, alors, comme le suggèrent les autres réponses, l’utilisation de la classe System.Diagnostics.Process est votre meilleur choix.

Si vous souhaitez exécuter une commande de ligne de commande (cmd.exe), telle que “dir” ou “time” ou “mkdir”, transmettez la commande en tant qu’argument à cmd.exe avec l’indicateur / C.

Par exemple,

 cmd.exe /C dir 

ou

 cmd.exe /C mkdir "New Dir"