2

このコードの VB.net を C# に変換しています。

Dim files() As String
files = Directory.GetFiles("E:\\text", "*.txt") 
Dim filename As String
Dim file As String
For Each file In files
filename = Path.GetFileName(file)

C#でこれを試しましたが、エラーが発生しました

タイプと識別子の両方が foreach ステートメントで必要です csharp のエラー

string[] files;
files = Directory.GetFiles("E:\\text", "*.txt");
string[] filenameMove;
string filename;
string file;

foreach (file  in files)
  filename = Path.GetFileName(file);
4

4 に答える 4

5

試す

foreach(var file in files)

ループするか使用するタイプを指定する必要がありますvar

ただし、すでに file という変数を宣言しています。そのため、別の名前を使用する必要があります

foreach(var f in files)
{
  filename = Path.GetFileName(f);
}

(あなたのロジックでは、反復ごとにファイル名を上書きしているだけなので、最後のファイル名だけが必要でない限り、その目的がわかりません)。

于 2013-03-01T19:57:58.493 に答える
0
string[] files;
files = Directory.GetFiles("E:\\text", "*.txt");
string[] filenameMove;
string filename;
//string file;

//foreach (file  in files)
  foreach (string file  in files)
  filename = Path.GetFileName(file);
于 2013-03-01T20:04:32.440 に答える
0

foreach構文を確認する必要があります。

  Foreach(Type varName in array)
  {
      filename = Path.GetFileName(varName);
  }

それとType配列は同じである必要があります。または、このような変数Typeを使用できますvar

  Foreach(var varName in array)
  {
      filename = Path.GetFileName(varName);
  }
于 2013-03-01T20:01:40.267 に答える
0

ここに変数と文字列がありません

これを試して

    foreach (var file  in files)


    foreach (string file  in files)
于 2013-03-01T20:02:15.020 に答える