2

このコードはこの例で何をしますか? 何をargs[0]保存しますか? 自分のディレクトリのパスにアクセスしたいのですが、できませんが、同じ行で間違いを犯していると確信しています。

string directoryPath = args[0];

これは私のコードです:

class Program
    {
        static void Main(string[] args)
        {

                string directoryPath = args[0];
                string[] filesList, filesListTmp;
                IFileOperation[] opList = { new FileProcNameAfter10(),
                                            new FileProcEnc(),
                                            new FileProcByExt("jpeg"),
                                            new FileProcByExt("jpg"),
                                            new FileProcByExt("doc"),
                                            new FileProcByExt("pdf"),
                                            new FileProcByExt("djvu")
                                            };
                if (Directory.Exists(directoryPath))
                {
                    filesList = Directory.GetFiles(directoryPath);
                    while (true)
                    {
                        Thread.Sleep(500);
                        filesListTmp = Directory.GetFiles(directoryPath);
                        foreach (var elem in Enumerable.Except<string>(filesListTmp, filesList))
                        {
                            Console.WriteLine(elem);
                            foreach (var op in opList)
                            {
                                if (op.Accept(elem)) op.Process(elem);
                            }
                        }
                        filesList = filesListTmp;
                        if (Console.KeyAvailable == true && Console.ReadKey(true).Key == ConsoleKey.Escape) break;
                    }
                }
                else
                {
                    Console.WriteLine("There is no such directory.");
                    Console.ReadKey();

                }


        }
    }
4

6 に答える 6

3

args 0 はこのプログラムに何を保存しますか

そのコマンド ライン パラメーターは、コマンド ラインからパラメーターを指定して実行すると値を取得exeします。

デバッグの目的で、Visual Studio から送信することもできます。プロジェクトのプロパティに移動し、デバッグして、開始オプションで指定します。

ここに画像の説明を入力

于 2013-03-04T12:45:09.273 に答える
2

OK、args[0]プログラムに渡される最初のコマンドライン パラメータを表します。要するに、あなたのケースではそれが何を表しているのかわかりません。ただし、次のコマンドラインを検討してください。

MyProgram.exe

には何も渡さないargs[]ため、 のインデックスはありません0。次のコマンドラインを検討してください。

MyProgram.exe Hello

これは に渡さHelloれるargs[]ため、インデックスの値0は になりますHello。次に、このコマンドラインについて考えてみましょう:

MyProgram.exe Hello World

Helloこれはとに渡さWorldれるargs[]ため、 index の値0は になり、 indexHelloの値1は になりますWorld。さて、覚えておくべきもう 1 つのことは"、特に必然的にパスを扱う場合のパラメータです。

MyProgram.exe "C:\MyPath\ToSomewhere"
于 2013-03-04T12:48:01.470 に答える
2

ディレクトリのパスにアクセスしたい場合 [...]

アプリケーションの場所を取得したい場合は、試すことができます

System.Reflection.Assembly.GetExecutingAssembly().Location

この質問も参照してください: How can I get the application's path in a .NET console application?

于 2013-03-04T12:53:32.793 に答える
1

args[0] は、実行中に渡される最初の引数です。

C:\プログラムへのパス\Program.exe 「あなたのディレクトリパス」

于 2013-03-04T12:47:34.180 に答える
1

に何かが入力されるように、コマンド ライン パラメータを何かに設定する必要がありますarg[0]。これは、プロジェクト プロパティの [デバッグ] タブから実行でき、[コマンド ライン引数] フィールドを設定します。これにより、IDE の外部で実行するときにプロンプ​​トからコマンド ラインを指定したかのように、アプリケーションをデバッグできます。一般に、次のように使用する前に、パラメーターの存在を常に確認する必要があります。

if (args != null && args.Length > 1)
{
    // now you know there's thing in "args[0]"
}
于 2013-03-04T12:45:37.663 に答える
1

args[0]アプリケーションの起動時に渡される最初のコマンドライン パラメータが含まれます。

于 2013-03-04T12:46:50.157 に答える