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# 中尝试过这个但得到了错误

csharp 中的 foreach 语句中都需要类型和标识符

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

你应该看看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

这是你缺少 var 和 string

试试这个

    foreach (var file  in files)


    foreach (string file  in files)
于 2013-03-01T20:02:15.020 回答
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 回答