我有一堆csv文件的文件夹,我想导入SQL Server。这适用于BULK INSERT。
但是我的编码有问题,在数据库中得到奇怪的章程 - 如果我在记事本中打开csv文件,再次将它们保存为unicode,它就可以完美运行。
他们是否在C#中以编程方式将文件夹中的所有文件转换为unicode? p>
由于
答案 0 :(得分:1)
对于所有文件:
string text = File.ReadAllText("data.txt", Encoding.ASCII);
File.WriteAllText("data.txt", text, Encoding.Unicode);
答案 1 :(得分:1)
要扩展@ Sandre的答案,您可以按以下方式批量处理此操作:
var di = new DirectoryInfo(@"path\to\csvFolder");
var csvFiles = di.EnumerateFiles("*.csv", SearchOption.TopDirectoryOnly);
var outputFolderDi = new DirectoryInfo(Path.Combine(di.FullName, "outputFolder"));
outputFolderDi.Create();
foreach(var filePath in csvFiles.Select(fi => fi.FullName))
{
var text = File.ReadAllText(filePath);
var fileName = Path.GetFileName(filePath);
var newFilePath = Path.Combine(outputFolderDi.FullName, fileName);
File.WriteAllText(newFilePath, text, Encoding.Unicode);
}
我不保证此代码是正确的。在部署文件系统之前请仔细检查!