私は生成ファイル用のフォルダを準備するには、次のコードを持っている:私は通常、それを実行するとラインで、まさにそれが動作ごとに二度目、そしてそれがDirectoryNotFoundException
をスローし、他の時間をDirectory.CreateDirectoryは非同期ですか、それとも何ですか?
if (Directory.Exists(outputDir))
{
Directory.Delete(outputDir, true);
}
Directory.CreateDirectory(outputDir);
を:
File.WriteAllLines(filePath, CreateRows(TestLineCount, TestSampleCount));
Could not find a part of the path 'C:\Dev\Android\Projects...
と言っています。 filePath
の最後のフォルダが削除されていますが、それを削除してからもう一度作成していますので、常にそこに置いてください。私がラインにDirectory.CreateDirectory(outputDir);
のブレークポイントを置くと、少しの遅延があると、アプリは毎回動作します。自動遅延を導入した場合、すなわち:
Directory.CreateDirectory(outputDir);
Thread.Sleep(500);
毎回動作します。確かにこれらの呼び出しはすべて完了するまでブロックする必要がありますので、outputDir
はいつもそこにありますか?
のようにこれを呼び出すときCreateDirectoryが、それはフォルダが作成されていない場合はスローされていることを確認するために返す直前にチェックを持っているので、あなたは完全なスタックトレースを含めることができます。だから、FileStream.Initのどこが失敗したのか、そのメソッドが呼び出しスタックの先頭にあると思っています。どのOSでこのbtwですか? – rene
実際に問題を再現するコードとその呼び出しスタックを含む完全な例外を投稿してください。あなたは 'Exception.ToString()'でそれを得ることができます。 'CreateDirectory'は非同期ではありません。あなたはおそらくリモートシェアで作業していますか? –