2011-10-27 6 views
2

特定のファイルタイプを使用するプログラムを作成していますが、そのファイルタイプをプログラムに関連付けましたが、ファイルをクリックするとプログラムが起動するだけですが、クリックしたファイルを読み込みます。私のプログラムにファイルをロードさせるには?ファイルを開き、ロードする

答えて

1

あなたはファイル名を取得するためにstatic void Main(string[] args)を使用することができます。

私はこのような何かしたい:あなたはどこprivate string filename;

static void Main(string[] args) { 
    // first check if there are arguments 
    if (args.length > 0) 
    { 
    // check if the filename has the right extension 
    if (args[0].EndsWith(".ext")) 
    { 
     // check for existence 
     if (System.IO.File.Exists(args[0])) 
     { 
      // it exists.. so store the filename in the previously defined variable 
      filename = args[0]; 
     } 
    } 
    } 
} 

あなたがロジックの一種を行うことができるこの方法を取得し、ファイル名を保存する文字列変数を持っている必要があり、あなたのコード内の

どこかをファイル名変数にはコンテンツがあり、そうでないときは別の種類のロジックがあります。

希望すれば、これを使用できます。

2

Main(string[] args)を使用して、アプリケーションにargs paramsを渡す必要があります。
ここでは一例です:あなたがあなたのアプリケーションに関連付けられてきたファイルを開くと

static void Main(string[] args) 
{ 
    if (args.Length == 0) return; 
    string text = File.ReadAllText(args[0]); 
} 
+0

...ここに示すように、Windowsファイルの関連付け内でパラメータを指定する必要があると思います。http://technet.microsoft.com/en-us/library/cc749986.aspx – zoidbeck

+0

@zoidbeck:はい、ただし私が彼のアプリケーションがターゲットファイルをダブルクリックしたときに開かれていることをOPから伝えているので、これはすでにOKだと思います。 – Marco

+0

Ok '、この'%1 'はパラメータとして明示的に設定されています。知っておいてください...またはupvotesが明示的にそれを取得するか環境を使用する必要があることを示すように見えます: – zoidbeck

3

、ファイルパスがコマンドライン引数としてプログラムに渡されます。あなたはそうのようなファイルを自分でロードすることができます。

string fileName = Environment.GetCommandLineArgs()[0]; 
関連する問題