将 txt 文件保存到错误的位置
Saving txt file going to wrong location
我正在尝试将文本文件日志保存到我的 Windows Form 项目的特定位置。我将 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());
}
您在当前代码中没有显示保存对话框或使用它的 FileName
属性,而是在保存时引用初始 fileName
。
所以你需要做的是这样的:
if (sn.ShowDialog() == DialogResult.OK)
{
using (StreamWriter SaveFile = new StreamWriter(sn.FileName))
{
foreach (var item in EventLog)
{
SaveFile.WriteLine(item);
}
}
}
这将显示保存对话框,假设用户单击“确定”,保存对话框的 FileName
应该 是用户想要保存的完整路径保存到。
您必须将保存对话框显示为 return 您期望的值。
我正在尝试将文本文件日志保存到我的 Windows Form 项目的特定位置。我将 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());
}
您在当前代码中没有显示保存对话框或使用它的 FileName
属性,而是在保存时引用初始 fileName
。
所以你需要做的是这样的:
if (sn.ShowDialog() == DialogResult.OK)
{
using (StreamWriter SaveFile = new StreamWriter(sn.FileName))
{
foreach (var item in EventLog)
{
SaveFile.WriteLine(item);
}
}
}
这将显示保存对话框,假设用户单击“确定”,保存对话框的 FileName
应该 是用户想要保存的完整路径保存到。
您必须将保存对话框显示为 return 您期望的值。