このプログラムは、ディレクトリのパスとディレクトリが存在する場合はそのディレクトリを表示することになっており、次の拡張子 (つまり、.doc、.pdf、.jpg、.jpeg) を持つファイルも表示する必要がありますが、エラーが発生します
*インデックスが配列の範囲外だった。
このコード行で
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.");
}
}
}
このエラーをどのように処理できますか?これは一般的なようですが、さまざまな方法で発生します