0

ディレクトリのパスにアクセスしたいのですが、アクセスできません。コードにブレークポイントを配置しました。

string directoryPath = args[0];

をクリックするとargs[0];、次の画像が表示されました。

-       args    {string[3]} string[]
        [0] "C:\\Users\\soft\\Documents\\Visual"    string
        [1] "Studio"    string
        [2] "2010\\Projects\\erereerer\\erereerer\\bin\\Debug\\MAXee\\" string
        directoryPath   null    string
        filesList   null    string[]
        filesListTmp    null    string[]
        opList  null    erereerer.IFileOperation[]

ディレクトリにアクセスしようとしましたが、失敗しています。私は何度も試しましたが、コードを実行すると、ディレクトリは実際には存在しますが、ディレクトリは存在しません..

これは私のコードです:

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

2 に答える 2

2

[0] "C:\Users\soft\Documents\Visual" 文字列
[1] "Studio" 文字列
[2] "2010\Projects\erereerer\erereerer\bin\Debug\MAXee\" 文字列

引用符なしで引数を渡していることがわかります。

次のようにプログラムを呼び出します。

MyApp.exe "C:\Users\soft\Documents\Visual Studio 2010\Projects\erereerer\erereerer\bin\Debug\MAXee\"

または、Blachshma が言ったことを実行してください。

directoryPath = String.Join(" ", args);
于 2013-03-04T22:16:20.027 に答える
0

ディレクトリを引用符で囲んで渡します。

MyProgram.exe "C:\Users\soft\Documents\Visual Studio 2010\Projects\erereerer\erereerer\bin\Debug\MAXee\"

またはコードに参加argsます:

directoryPath = String.Join(" ", args);
于 2013-03-04T22:15:43.233 に答える