【发布时间】:2014-09-06 18:35:36
【问题描述】:
我想打开一个 SaveFileDialog 和过滤器,例如 .tgz 文件。这是我的代码:
string dummyFileName = "file.tgz";
string savePath = "fail";
SaveFileDialog sf = new SaveFileDialog();
//Feed dummy name to the save dialog
sf.FileName = dummyFileName;
sf.Filter = ".tar.gz|*.tgz";
if (sf.ShowDialog() == DialogResult.OK)
{
//Now here's our save folder
savePath = Path.GetFullPath(sf.FileName);
}
// then i check if savePath = "fail", in case the user abborted it, and return.
过滤器有效。我也将其更改为 .txt 或 .exe,但我注意到:我的桌面上有一些指向 .xlsx 文件的链接,这些链接已显示。未显示实际文件,仅显示 Excel 文件中的链接!有没有其他人注意到这一点并找到了解决方法?
问题是,我以后想使用这个文件名。当用户现在单击链接时,它会更改文件名。
【问题讨论】:
-
我明白了。尴尬的 Windows 行为可能与 Office 安装的 shell 扩展有关,但这只是猜测。你无能为力,你不能弄乱用户的机器。如果您绝对想防止用户选择错误的文件,但不确定是否有必要,那么您必须仔细检查文件扩展名。您可以在 FileOk 事件的事件处理程序中执行此操作。
-
你有同样的问题吗?尴尬...不,我不能搞砸。问题是我的代码将在这种情况下创建一个 .tgz 或 .xlsx 文件,并且可能会覆盖现有的文件。只是为了防止这一切,我不想看到他们。解决方法是防止这种情况的好方法,谢谢。
标签: c# excel filter xlsx savefiledialog