Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SaveFileDialog筛选器是否显示.xlsx链接?_C#_Excel_Filter_Xlsx_Savefiledialog - Fatal编程技术网

C# SaveFileDialog筛选器是否显示.xlsx链接?

C# SaveFileDialog筛选器是否显示.xlsx链接?,c#,excel,filter,xlsx,savefiledialog,C#,Excel,Filter,Xlsx,Savefiledialog,我想打开一个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.ShowDia

我想打开一个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文件中的链接!有没有其他人注意到这一点并找到解决办法


问题是,我想在以后使用这个文件名。用户现在单击链接时,会更改文件名。

如果要筛选对话框中显示的内容,而不是筛选文件保存为的扩展名,请在
对话框上设置
DefaultExt
属性:

string dummy = "file.tgz";
string path = "";
SaveFileDialog sf = new SaveFileDialog();
sf.FileName = dummy;
sf.DefaultExt = ".tgz"; // <== This one.
sf.Filter = "gzipped tar files (*.tgz)|*.tgz";
if (sf.ShowDialog() == true)
{
    path = sf.FileName;
}
string dummy=“file.tgz”;
字符串路径=”;
SaveFileDialog sf=新建SaveFileDialog();
sf.FileName=dummy;

sf.DefaultExt=“.tgz”//我看到了。笨拙的Windows行为,可能与Office安装的shell扩展有关,但这只是猜测。你没什么办法,你不能搞乱用户的机器。如果您绝对希望防止用户选择错误的文件,但又不确定是否有必要,则必须重新检查文件扩展名。您可以在FileOk事件的事件处理程序中执行此操作。是否存在相同的问题?尴尬的。。。不,我不能搞砸。问题是,在本例中,我的代码将创建一个.tgz或.xlsx文件,并且可能会覆盖现有的文件。为了防止这一切,我不想看到他们。解决方法是防止这种情况的好方法,谢谢。