2016-05-09 155 views
1

Visual StudioでC#を使用して.exeファイルに.txtファイルをドラッグアンドドロップし、そのファイル内で検索および置換できるようにコンソールアプリケーションを作成しようとしています。最終的には、元のファイル名の末尾に_unwrappedを付けて保存するようにします。私はC#の非常に新しいです、これはこれまで私が持っているものです。デバッグフォルダに置いたテストファイルで動作します。ドラッグしたファイルでこの作業を行うにはどうしたらいいですか?私はgoogleで見つけたいくつかのことを試してみましたが、うまく動作せず、私はそれらを理解できませんでした。ありがとうございました!!ファイルをコンソールアプリケーションにドラッグアンドドロップする

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

次のGoogle検索を行うと、あなたは 'C#のドラッグを検索し、ファイルをドロップどのような結果を参照してください。あなただけargsパラメータから引数を抽出する必要があります'Wnforms'アプリケーションの方が成功している可能性があります – MethodMan

+1

@MethodMan彼女はウィンドウにドロップしたくないのですが、exeファイル – Adrian

答えて

6

は、Windowsでの.exeファイル上にファイルをドラッグすると、.exeがその引数としてファイルのパスで実行されます。コンソールは、おそらくあなたがこれを行うことを検討すべきであるapplication`に

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

これは、デバッグフォルダにtest.txtという名前のファイルを作成しますか?もしそうなら、私にとってはうまくいかないでしょう。 – Emmily

+0

@きっと私は私の答えを編集しました。今度はあなたが望む行動をします。 – Adrian

+0

あなたは私のヒーローです!どうもありがとうございます! – Emmily

関連する問題