我正在将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语句ERROR中都需要类型和标识符
string[] files;
files = Directory.GetFiles("E:\\text", "*.txt");
string[] filenameMove;
string filename;
string file;
foreach (file in files)
filename = Path.GetFileName(file);
答案 0 :(得分:4)
尝试
foreach(var file in files)
您需要指定要循环的类型或使用var
您已经声明了一个名为file的变量。所以你必须使用不同的名字
foreach(var f in files)
{
filename = Path.GetFileName(f);
}
(虽然你的逻辑只是在每次迭代时都覆盖了文件名,所以除非你只想要最后一个文件名,否则我不确定它的用途是什么。)
答案 1 :(得分:0)
您应该查看 foreach 语法。
Foreach(Type varName in array)
{
filename = Path.GetFileName(varName);
}
Type
和数组应该是Type
相同,或者您可以像这样使用var
变量
Foreach(var varName in array)
{
filename = Path.GetFileName(varName);
}
答案 2 :(得分:0)
这就是你缺少var和string
试试这个
foreach (var file in files)
foreach (string file in files)
答案 3 :(得分: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);