jac*_*nSD 1 c# streamwriter savefiledialog winforms
我正在尝试将文本文件日志保存到Windows窗体项目中的特定位置.我设置InitialDirectory到Path.GetFullPath(filePath)其中我通过在filePath被设置为一个简单的路径"C:\MyWork\EventLogs\"
日志保存在程序的退出(当用户关闭或点击退出按钮时),但它仍然保存在Project\bin\Debug我的项目的文件夹中.
任何想法都会很棒.谢谢!
try
{
DateTime today = DateTime.Now;
string todayDate = today.ToString("yyyy-MM-dd_HHmm");
string fileName = (todayDate + "_EventLog" + ".txt").Trim();
string filePath = @"C:\MyWork\EventLogs\";
DirectoryInfo di = Directory.CreateDirectory(filePath);
SaveFileDialog sn = new SaveFileDialog
{
FileName = fileName,
AddExtension = true,
CheckPathExists = true,
Filter = "Text (*.txt)|*.txt",
OverwritePrompt = true,
InitialDirectory = Path.GetFullPath(filePath)
};
sn.RestoreDirectory = true;
StreamWriter SaveFile = new StreamWriter(fileName);
foreach (var item in EventLog)
{
SaveFile.WriteLine(item);
}
SaveFile.Close();
}
catch (Exception x)
{
MessageBox.Show(x.ToString());
}
Run Code Online (Sandbox Code Playgroud)
您不会FileName在当前代码中显示保存对话框或使用其属性,而是fileName在保存时引用初始值.
所以你需要做的就是这样:
if (sn.ShowDialog() == DialogResult.OK)
{
using (StreamWriter SaveFile = new StreamWriter(sn.FileName))
{
foreach (var item in EventLog)
{
SaveFile.WriteLine(item);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这将显示保存对话框,并假设用户单击"确定" FileName,保存对话框应该是用户要保存到的完整路径.