C# 用C语言创建和保存文件#

C# 用C语言创建和保存文件#,c#,wpf,file-io,savefiledialog,C#,Wpf,File Io,Savefiledialog,我需要创建并写入.dat文件。我猜这与写入.txt文件的过程几乎相同,只是使用了不同的扩展名 用简单的英语,我想知道如何: -创建一个.dat文件 -写信给它 -并使用SaveFileDialog 有几页我一直在看,但我认为我最好的解释将来自这个网站,因为它允许我准确地陈述我需要学习的东西 下面的代码是我目前拥有的代码。基本上,它会打开一个SaveFileDialog窗口,其中有一个空白的文件:部分。映射到文件夹并按save不会保存任何内容,因为未使用任何文件。请帮助我将文件保存到不同的位置 M

我需要创建并写入.dat文件。我猜这与写入.txt文件的过程几乎相同,只是使用了不同的扩展名

用简单的英语,我想知道如何:

-创建一个.dat文件

-写信给它

-并使用
SaveFileDialog

有几页我一直在看,但我认为我最好的解释将来自这个网站,因为它允许我准确地陈述我需要学习的东西

下面的代码是我目前拥有的代码。基本上,它会打开一个
SaveFileDialog
窗口,其中有一个空白的
文件:
部分。映射到文件夹并按save不会保存任何内容,因为未使用任何文件。请帮助我将文件保存到不同的位置

Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
dlg.FileName = "";
dlg.DefaultExt = "";

Nullable<bool> result = dlg.ShowDialog();

if (result == true)
{
    string filename = dlg.FileName;
}
Microsoft.Win32.SaveFileDialog dlg=new Microsoft.Win32.SaveFileDialog();
dlg.FileName=“”;
dlg.DefaultExt=“”;
可为空的结果=dlg.ShowDialog();
如果(结果==真)
{
字符串文件名=dlg.filename;
}
我一直在看的页面:

-

-


-

请注意,
SaveFileDialog
只生成文件名,但实际上不保存任何内容

var sfd = new SaveFileDialog {
    Filter = "Text Files (*.txt)|*.txt|All files (*.*)|*.*",
    // Set other options depending on your needs ...
};
if (sfd.ShowDialog() == true) { // Returns a bool?, therefore the == to convert it into bool.
    string filename = sfd.FileName;
    // Save the file ...
}
使用从
SaveFileDialog
获取的文件名,并执行以下操作:

File.WriteAllText(filename, contents);
如果您打算将文本写入文件,则仅此而已

您还可以使用:

File.WriteAllLines(filename, contentsAsStringArray);

请注意,
SaveFileDialog
只生成文件名,但实际上不保存任何内容

var sfd = new SaveFileDialog {
    Filter = "Text Files (*.txt)|*.txt|All files (*.*)|*.*",
    // Set other options depending on your needs ...
};
if (sfd.ShowDialog() == true) { // Returns a bool?, therefore the == to convert it into bool.
    string filename = sfd.FileName;
    // Save the file ...
}
使用从
SaveFileDialog
获取的文件名,并执行以下操作:

File.WriteAllText(filename, contents);
如果您打算将文本写入文件,则仅此而已

您还可以使用:

File.WriteAllLines(filename, contentsAsStringArray);


这取决于你对.dat的理解。如果它确实是一个具有不同文件扩展名的文本文件,那么只需创建一个扩展名为.dat的文本文件即可。如果您希望使用二进制格式,您可能希望根据您的使用情况查看序列化。我认为这是您说的第一件事(具有不同扩展名的文本文件),因为您应该能够在记事本中读取它。啊,在这种情况下,与通常的过程完全相同,只需提供一个带有扩展名的文件名。系统不在乎你给什么扩展。如果你愿意,你可以有一个.abc或.a12文件。苏,我们为什么不再次使用.txt?@Akane,因为接收此文件的程序需要接收一个.dat。这取决于你对.dat的理解。如果它确实是一个具有不同文件扩展名的文本文件,那么只需创建一个扩展名为.dat的文本文件即可。如果您希望使用二进制格式,您可能希望根据您的使用情况查看序列化。我认为这是您说的第一件事(具有不同扩展名的文本文件),因为您应该能够在记事本中读取它。啊,在这种情况下,与通常的过程完全相同,只需提供一个带有扩展名的文件名。系统不在乎你给什么扩展。如果愿意,您可以使用.abc或.a12文件。Soo,我们为什么不再次使用.txt?@Akane,因为接收此文件的程序需要接收.dat,而不是
ShowDialog
仅用于显示
SaveFileDialog
窗口?我认为我没有从中收到任何文件名。在用户在
SaveFileDialog
中选择了一个文件并且结果为
true
之后,
FileName
属性包含所选文件的完整路径。因此,
SaveFileDialog
真正做的就是获取一个
FileName
并指定保存它的位置?是的,
SaveFileDialog
实际上只获取一个
FileName
!在.NET中实际创建文件可能有多种方法。
SaveFileDialog
无法保存该文件,因为它不知道该文件应包含哪些内容。
ShowDialog
不只是用来显示
SaveFileDialog
窗口吗?我认为我没有从中收到任何文件名。在用户在
SaveFileDialog
中选择了一个文件并且结果为
true
之后,
FileName
属性包含所选文件的完整路径。因此,
SaveFileDialog
真正做的就是获取一个
FileName
并指定保存它的位置?是的,
SaveFileDialog
实际上只获取一个
FileName
!在.NET中实际创建文件可能有多种方法。
SaveFileDialog
无法保存文件,因为它不知道该文件的内容。