我有目录@“c:\ dom \”,其中我有超过100个excel文件。 我需要以下面的格式(CSV)
返回所有excel文件路径 @"C:\dom\dom1.xlsx",
@"C:\dom\dom2.xlsx",
@"C:\dom\dom3.xlsx",
.
.
.
@"C:\dom\dom100.xlsx"
我尝试了下面的
string[] array1 = Directory.GetFiles(@"C:\Users\dom\");
foreach (string name in array1)
{
string.Join(",", name);
}
没有成功。
答案 0 :(得分:3)
以下列举文件,然后将它们作为CSV字符串连接。
var filePaths = Directory.EnumerateFiles(@"C:\Users\dom\");
var csv = String.Join("," + Environment.NewLine, filePaths);
请注意,如果您不需要尾随逗号,可以像这样修改加入:
var filePaths = Directory.EnumerateFiles(@"C:\Users\dom\");
var csv = String.Join(Environment.NewLine, filePaths);
答案 1 :(得分:0)
简单难看的解决方案:
string[] array1 = Directory.GetFiles(@"C:\Users\dom\");
string csv = String.Empty;
foreach (string name in array1.Where(x => x.EndsWith("xlsx")))
csv += name + ",\r\n";
答案 2 :(得分:0)
嗯,你的代码不起作用的原因是因为你错过了一个变量来存储从行string.Join(",", name);
返回的结果
所以使用Directory.GetFiles()
绝对不是问题。
无论如何,你所需要的只是不超过1行代码。
// to export it into a csv file (1 entry per row)
File.WriteAllText(@"C:\output.csv", string.Join(Environment.NewLine, Directory.GetFiles(@"C:\Users\dom\")));
答案 3 :(得分:0)
使用此功能,只需将文件夹路径作为请求的参数
public static string GetFilePathConcenated(string folderPath)
{
if (Directory.Exists(folderPath){
string[] fileList = Directory.GetFiles(folderPath);
return string.Join(",", fileList).TrimEnd(',');
}
return string.Empty;
}