gpt4 book ai didi

c# - 使用两个扩展名保存文件

转载 作者:太空宇宙 更新时间:2023-11-03 13:41:31 26 4
gpt4 key购买 nike

<分区>

我正在尝试使用 SaveFileDialog 保存文档。过滤器应允许用户将文档保存为 .doc 或 .docx,但如果用户输入文件名“Test.txt”,则文件将保存为 Test.txt 而不是 Test.txt.doc

如何防止文件类型转换,让用户只保存.doc或.docx文件?如果用户不自己选择 2 个扩展名之一,它应该始终保存为 .doc。

我当前的代码如下所示:

SaveFileDialog sfd = new SaveFileDialog();
string savepath = "";
sfd.Filter = "Wordfile (*.doc;*.docx;)|*.doc;*.docx)";
sfd.DefaultExt = ".doc";
sfd.SupportMultiDottedExtensions = true;
sfd.OverwritePrompt = true;
sfd.AddExtension = true;
sfd.ShowDialog();

//Save the document
doc.SaveAs(sfd.FileName, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);

我可以做一个 if 并询问 sfd.FileName 是否以 .doc 或 .docx 结尾,但这有点复杂并且使得 SaveFileDialog 的过滤器完全没用......

当我键入文件名“Test”时,输出将是 Test.doc,当我键入“Test.txt”时,输出将是“Test.txt”

编辑:Ilyas 的回答有点正确。它以 .txt 作为扩展名工作,但当我只键入“Test”或“Test.doc”作为文件名时则不行,因为它总是将文件保存为“Test.doc.doc”。我目前的解决方案:

//.....
sfd.ShowDialog();
if (!sfd.FileName.EndsWith(".doc") && !sfd.FileName.EndsWith(".docx"))
sfd.FileName += ".doc";

编辑:解决方案可以在 Ilyas answer 或我对 Ilyas answer 的评论中找到。

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