【解決方法】C# ファイルの取得が機能しない

なぜこれが機能しないのかわかりません。ほんの数個の .​​txt ファイルがあり、期待どおりの出力がありません。

私が試したこと:

C#
try
      {
          string[] array2 = Directory.GetFiles(@"C:\Users\Public\LSH\SearchingDB\", "*.txt");
          if (array2.Length == 0)
          {
              Console.WriteLine("No files found.");
          }
          foreach (string name in array2)
          {
              if (name.Contains(TextBox1.Text))
              {
                  Console.WriteLine(name);
              }
          }
      }
      catch (Exception excpt)
      {
          Console.WriteLine(excpt);
      }

解決策 1

うーん…何が「機能していない」のかは一言も言っていませんね。 それは適切な問題の説明ではありません。

GetFiles は問題なく動作します。 最初に確認するのは、指定したパスです。 パスが存在しないか、そのパスに対するアクセス許可がないか、そのフォルダー内に「txt」という拡張子を持つファイルがありません。

次に、これをデバッガーで実行しブレークポイントを設定し、コードをステップ実行して変数の内容を調べて変数の内容を確認します。 現時点では、コードが何を行っているかを推測しているだけです。

他におかしな点は、Windows フォーム アプリにはコンソールがないことです。 コンソール メソッドからの出力はすべて、Visual Studio の出力ウィンドウに出力されます。 これは実際には Debug.WriteLine に置き換える必要があります。

解決策 2

Microsoft Windows の MAX_PATH 制限は最大 256 文字です。 パスとファイル名を合わせた長さが最大 ​​256 文字を超えると、「パスが存在しません」というメッセージが表示されます。

コメント

タイトルとURLをコピーしました