2016-05-09 6 views
1

Ich versuche, eine Konsolenanwendung in Visual Studio mit C# zu erstellen, Drag & Drop einer TXT-Datei in die EXE-Datei und lassen Sie es in dieser Datei suchen und ersetzen. Irgendwann möchte ich es dann auch speichern - wie bei _unwrapped am Ende des ursprünglichen Dateinamens. Ich bin sehr neu in C# und das ist, was ich bisher habe. Es funktioniert mit der Testdatei, die ich in den Debug-Ordner gelegt habe. Wie kann ich das mit einer gezogenen Datei machen? Ich habe ein paar Dinge ausprobiert, die ich bei Google gefunden habe, aber sie haben nicht funktioniert und ich habe sie nicht verstanden. Vielen Dank!!Drag & Drop-Datei auf Konsolenanwendung

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.IO; 

namespace ConsoleApplication3 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string text = File.ReadAllText("test.txt"); 
      text = text.Replace("~", "~\r\n"); 
      File.WriteAllText("test.txt", text); 

     } 
    } 
} 
+1

eine Google-Suche nach dem folgenden und welche Ergebnisse Sie 'C# Drag finden und Datei-Drop auf Konsole application' sollten Sie vielleicht in ein tun dies berücksichtigen 'Wnforms' Anwendung, die Sie möglicherweise besser Erfolg haben – MethodMan

+1

@MethodMan Sie möchte es nicht auf das Fenster, nur auf der Exe – Adrian

Antwort

6

Wenn Sie eine Datei auf einer EXE in Windows ziehen, wird die Exe mit der als Argument Pfad der Datei ausgeführt werden. Sie haben nur das Argument aus dem args Parameter zu extrahieren:

static void Main(string[] args) 
{ 
    if (args.Length == 0) 
     return; // return if no file was dragged onto exe 
    string text = File.ReadAllText(args[0]); 
    text = text.Replace("~", "~\r\n"); 
    string path = Path.GetDirectoryName(args[0]) 
     + Path.DirectorySeparatorChar 
     + Path.GetFileNameWithoutExtension(args[0]) 
     + "_unwrapped" + Path.GetExtension(args[0]); 
    File.WriteAllText(path, text); 

} 
+0

würde Würde dies dann eine Datei namens test.txt im Debug-Ordner erstellen? Wenn es so ist, wird es für mich nicht funktionieren. – Emmily

+0

@Emmily Ich habe meine Antwort bearbeitet. Jetzt wird es das gewünschte Verhalten haben. – Adrian

+0

du bist mein Held! Ich danke dir sehr! – Emmily