是由同事给出的,但我只需要文件名:
private List<string> getWavFileList()
{
string path = @"c\test automation\wave files";
string[] files = Directory.GetFiles(path, "*.wav");
List<string> list = new List<string>(files);
return list;
}
输出列表包含路径和扩展名,我只需要文件名。我正在研究自己的方法,但无法编译:
private List<string> getWavFileList()
{
StringBuilder builder = new StringBuilder();
string path = @"c\test automation\wave files";
DirectoryInfo di = new DirectoryInfo(path);
FileInfo[] smFiles = di.GetFiles("*.wav");
foreach (FileInfo fi in smFiles)
{
builder.Append(Path.GetFileNameWithoutExtension(fi.Name));
builder.Append(", ");
}
string files = builder.ToString();
List list = new List<string>(files);
return list;
答案 0 :(得分:3)
我建议修改为以下内容;
private List<string> getWavFileList()
{
string path = @"c:\test automation\wave files";
DirectoryInfo di = new DirectoryInfo(path);
FileInfo[] smFiles = di.GetFiles("*.wav");
List<string> list = new List<string>(smFiles.Select(f => Path.GetFileNameWithoutExtension(f.Name)));
return list;
}
答案 1 :(得分:2)
在第一个解决方案中替换此行
List<string> list = new List<string>(files);
用这个:
return files.Select(Path.GetFileNameWithoutExtension).ToList();
这需要使用System.Linq
。
答案 2 :(得分:2)
我不知道为什么你用逗号连接字符串,我以为你想要一个列表:
private List<string> getWavFileList()
{
return Directory.EnumerateFiles(@"c\test automation\wave files", "*.wav")
.Select(System.IO.Path.GetFileNameWithoutExtension)
.ToList();
}