#質問
Cドライブ直下にフォルダAppが存在するかどうかをDirectory.Exists()で確認しています。
Microsoft:Directory.Exists(String) Method
C#
1 string path = @"C:\App"; 2 bool hoge = Directory.Exists($"{path}"); 3 Debug.WriteLine($"{hoge}");
これはフォルダの有無にかかわらず「InvalidOperationException」が発生します。
そして「path」のスラッシュを抜いた場合は、
C#
1 string path = @"C:App"; 2 bool hoge = Directory.Exists($"{path}"); 3 Debug.WriteLine($"{hoge}"); 4}
フォルダの有無にかかわらず常にfalseが返ってきます。
パスの書き方がおかしいのでしょうか?詳しい方よろしくお願いします。
[追記]
OS:Windows10
開発環境:VisualStudio2019
UWPアプリ
[追記2]
#自己解決・・・?
C#
1await Task.Run(()=> 2{ 3 string path = @"C:\App"; 4 bool hoge = Directory.Exists($"{path}"); 5 Debug.WriteLine($"{hoge}"); 6});
Directory.Exists()の含まれる箇所全体をTask.Run()で囲むと、
フォルダAppが存在するならtrue、存在しないならばfalseと出力されました。
InvalidOperationException の詳細なエラーメッセージも追記していただけますか?
例外がスローされました: 'System.InvalidOperationException' (System.IO.FileSystem.dll の中)
例外がスローされました: 'System.InvalidOperationException' (System.Private.CoreLib.ni.dll の中)
これでよいでしょうか?
InvalidOperationExceptionには何かMessageが設定されていませんか?たとえば https://stackoverflow.com/questions/36834584/got-system-invalidoperationexception-method-failed-with-unexpected-error-code-6 では「System.InvalidOperationException: Method failed with unexpected error code 64」というエラーメッセージが記載されています。
InvalidOperationException発生個所では特にエラーメッセージは出てきませんでした。
そして何故かはまったく理解できていませんが、Directory.Exists()が含まれるコード行すべてをawait Task.Run()で囲むと正常な動作が実現しました。
回答4件
あなたの回答
tips
プレビュー