gpt4 book ai didi

C# 文件写入 - 插入随机字符

转载 作者:行者123 更新时间:2023-12-04 18:19:18 25 4
gpt4 key购买 nike

我正在使用 Visual Studio 2008 编写一个 C# 实用程序来合并数据库脚本以进行发布。

这是代码的样子

strPath = txtInputFolder.Text;

DirectoryInfo di = new DirectoryInfo(strPath);
FileInfo[] lstFile = di.GetFiles("*.sql");

string strScriptPath = System.IO.Path.Combine(strPath, lblOutput.Text);
FileStream foutput = System.IO.File.Create(strScriptPath);
BinaryWriter writer = new BinaryWriter(foutput, Encoding.UTF8);

string strLine;
foreach (FileInfo fi in lstFile)
{
strLine = string.Empty;

strLine = "\r\n\r\n/*--------- " + fi.Name + " -------------*/" + "\r\n\r\n";
writer.Write(strLine);

//some processing
}

foutput.Close();
MessageBox.Show("Done");

此代码运行良好,并根据需要创建一个 script.sql 文件;但随机字符
      =

/*--------- script1.sql -------------*/

A

/*--------- script2.sql -------------*/

I

/*--------- script3.sql -------------*/

H

这是一个一致的问题,我不确定出了什么问题。

最佳答案

你为什么使用 BinaryWriter ?顾名思义,这是用于编写二进制文件,而不是文本文件。使用 StreamWriter反而。还要确保你已经包裹了IDisposable using 中的资源声明:

strPath = txtInputFolder.Text;
DirectoryInfo di = new DirectoryInfo(strPath);
FileInfo[] lstFile = di.GetFiles("*.sql");

string strScriptPath = System.IO.Path.Combine(strPath, lblOutput.Text);
using (FileStream foutput = System.IO.File.Create(strScriptPath))
using (StreamWriter writer = new StreamWriter(foutput, Encoding.UTF8))
{

string strLine;
foreach (FileInfo fi in lstFile)
{
strLine = string.Empty;

strLine = "\r\n\r\n/*--------- " + fi.Name + " -------------*/" + "\r\n\r\n";
writer.Write(strLine);
//some processing
}
}
MessageBox.Show("Done");

或者使用 LINQ 来简化您的代码:
string strPath = txtInputFolder.Text;
DirectoryInfo di = new DirectoryInfo(strPath);
FileInfo[] lstFile = di.GetFiles("*.sql");

string strScriptPath = Path.Combine(strPath, lblOutput.Text);

File.WriteAllLines(
strScriptPath,
lstFile.Select(
fi => string.Format(
"\r\n\r\n/*--------- {0} -------------*/\r\n\r\n{1}",
fi.Name,
File.ReadAllText(fi.FullName)
)
),
Encoding.UTF8
);

MessageBox.Show("Done");

关于C# 文件写入 - 插入随机字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11009722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com