DOBON.NET

実行ファイルにドロップされたファイルのパスを取得する

例えばデスクトップに「メモ帳」(notepad.exe)のショートカットを作っておくと、そのショートカットにテキストファイルをドラッグ&ドロップすればメモ帳で開くことができるようになります。このようにアプリケーションの実行ファイル(EXEファイル)や実行ファイルへのショートカットにファイルをドラッグ&ドロップした時、そのファイルを開くには、どのファイルがドロップされたのかを知る必要があります。ここでは、その方法について説明します。

実行ファイルやシュートカットにドロップされたファイルのパスは、アプリケーション起動時のコマンドライン引数として取得することができます。コマンドライン引数を取得する方法は「起動時のコマンドライン引数を取得する」で説明していますが、例えばEnvironment.GetCommandLineArgsメソッドを使用すると簡単です。

次の例では、Environment.GetCommandLineArgsメソッドを使うことにより、ドロップされたファイルのパスを列挙しています。

VB.NET
コードを隠すコードを選択
'コマンドライン引数を配列で取得する
Dim files As String() = System.Environment.GetCommandLineArgs()

If files.Length > 1 Then
    '配列の要素数が2以上の時、コマンドライン引数が存在する
    Console.WriteLine("次のファイルがドロップされました")

    '配列の先頭には実行ファイルのパスが入っているので、
    '2番目以降がドロップされたファイルのパスになる
    Dim i As Integer
    For i = 1 To files.Length - 1
        Console.WriteLine(files(i))
    Next
Else
    '配列の要素数が1の時、コマンドライン引数は存在しない
    Console.WriteLine("ドロップされたファイルはありませんでした")
End If
C#
コードを隠すコードを選択
//コマンドライン引数を配列で取得する
string[] files = System.Environment.GetCommandLineArgs();

if (files.Length > 1)
{
    //配列の要素数が2以上の時、コマンドライン引数が存在する
    Console.WriteLine("次のファイルがドロップされました");

    //配列の先頭には実行ファイルのパスが入っているので、
    //2番目以降がドロップされたファイルのパスになる
    for (int i = 1; i < files.Length; i++)
    {
        Console.WriteLine(files[i]);
    }
}
else
{
    //配列の要素数が1の時、コマンドライン引数は存在しない
    Console.WriteLine("ドロップされたファイルはありませんでした");
}
  • 履歴:
  • 2014/8/19 説明を書き換えた。

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • .NET Tipsをご利用いただく際は、注意事項をお守りください。
共有する

この記事への評価

この記事へのコメント

この記事に関するコメントを投稿するには、下のボタンをクリックしてください。投稿フォームへ移動します。通常のご質問、ご意見等は掲示板へご投稿ください。