winforms 使用“System”用户运行WinForm时C# SaveFileDialog出现警告

2nc8po8w  于 2023-01-14  发布在  C#
关注(0)|答案(1)|浏览(232)

使用WinForm单击按钮并调用保存filDialog时,将显示“C:\Windows\system32\config\systemprofile\Desktop”。
http://i.stack.imgur.com/wH7J9.jpg
挑战是这个软件必须在“系统”用户中运行。但是我使用SaveFileDialog来保存文件。会出现类似“C:\Windows\System32\Config\SystemProfile\Desktop”的消息。
我想问题是当我使用“系统”用户时,默认的用户配置文件不存在,并且找不到“Destop”文件夹路径。因为它不会有“用户配置文件”@“系统”用户。
这个错误出现在我点击按钮,这个应用程序试图初始化SaveFileDialog,也试图genarate在左手边的图标快捷方式,所以导致错误。下拉框也有保存问题。
http://i.stack.imgur.com/5Hy3S.jpg
有没有人知道如何删除图标shourt削减在左手边和下拉框图标也有同样的问题。

using (var dialog = new SaveFileDialog())
        {
         
            dialog.DefaultExt = "txt";
            dialog.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*";
            dialog.Title = "test";                
            dialog.AutoUpgradeEnabled = false;
            dialog.InitialDirectory = Application.StartupPath;
            try
            {                   
                DialogResult result = dialog.ShowDialog(this);
                if (result == DialogResult.OK)                                       
                {
                    //do something
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.StackTrace);

            }
        }

我只是用了非常非常简单的代码。
ps.我使用的是C#.net 4. 0,vs2010运行在win 2008 r2和win 7上
谢谢大家!!!

pjngdqdw

pjngdqdw1#

尝试设置SaveFileDialog的InitialDirectory属性

SaveFileDialog sfd = new SaveFileDialog();
        sfd.InitialDirectory = "c:\\yourDirectory";

还可以使用此方法检查磁盘上是否存在“我的文档”目录。

Directory.Exists(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments));

相关问题