我正在创建一个小程序,可以将网站网址/链接保存到列表框中。从那里,我可以将列表框的内容保存到文本文件中。然后将该文本文件保存到桌面上过早为该程序制作的文件夹中。应用程序可以打开文本文件并将内容显示到列表框,以及创建和保存新的文本文件。我的问题是如何正确覆盖文本文件。
这是我保存工具箱按钮的代码:
jQuery(document).ready(function($){
$("#fld_7213314_3_file_list").change(function(){
alert("The text has been changed.");
if ( $('#fld_7213314_3_file_list').children().length > 0 ) {
alert("had file uploaded")
}
});
});
问题是在使用“另存为工具栏”按钮创建文本文件后,编译器似乎忽略了我的if语句中的代码,并假设我想要始终创建要保存的新文本文件。提前谢谢!
答案 0 :(得分:0)
经过多次修改和外界帮助后,我发现了问题所在。我试图从我的文件夹目录中检索的文件名为null,因此不会保存任何内容。因此我所做的是如果上次打开/保存到表单上,我会从表单中检索文件名。
使用文件的完整路径而不是缩短文件的路径,我会将文件的内容覆盖到该路径。这样做还允许我将文件保存在计算机上的任何位置。
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
var fileNameAndPath = filedisplaylabel.Text;
if (string.IsNullOrEmpty((fileNameAndPath)))
{
OpenFileDialog openfiledialog1 = new OpenFileDialog();
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
filedisplaylabel.Text = Path.GetFullPath(openFileDialog1.FileName);
fileNameAndPath = filedisplaylabel.Text;
}
}
try
{
using (FileStream fstream = new FileStream(fileNameAndPath,
FileMode.Open,
FileAccess.Write))
{
using (StreamWriter write = new StreamWriter(fstream))
{
foreach (var item in WebListBox.Items)
write.WriteLine(item.ToString());
write.Close();
}
fstream.Close();
}
}
catch (DirectoryNotFoundException ex)
{
MessageBox.Show(ex.Message, "File not found error");
}
}