繁体   English   中英

C#-否定访问路径-openFileDialog

[英]C# - Access negated to path - openFileDialog

我是开发新手,我制作了一个简单的应用程序来尝试打开文件,该应用程序返回一个错误:“对路径的访问无效”,但我是管理员,UAC被禁用,并且我是唯一的帐户,为什么它给了我这个错误吗?

这是我的代码:

private void button1_Click(object sender, EventArgs e)
    {
        Stream myStream = null;
        OpenFileDialog openFileDialog1 = new OpenFileDialog();

        openFileDialog1.InitialDirectory = "c:\\";
        openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
        openFileDialog1.FilterIndex = 2;
        openFileDialog1.RestoreDirectory = true;

        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
            try
            {

                if ((myStream = openFileDialog1.OpenFile()) != null)
                {
                    using (myStream)
                    {
                        // Insert code to read the stream here.
                        string sourceCode = File.ReadAllText(Path.GetDirectoryName(openFileDialog1.FileName));
                        string colorizedSourceCode = new CodeColorizer().Colorize(sourceCode, Languages.Java);

                        textBox1.Text = colorizedSourceCode;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
            }
        }
    }

在我看来,您正在尝试打开文件夹中的流。

尝试更换它

string sourceCode = File.ReadAllText(Path.GetDirectoryName(openFileDialog1.FileName))

有了这个:

string sourceCode = File.ReadAllText(openFileDialog1.FileName)

您打开流错误。

也许尝试这样的事情?

private void button1_Click(object sender, EventArgs e)
    {            
            Stream myStream = null;
            OpenFileDialog openFileDialog1 = new OpenFileDialog();

            openFileDialog1.InitialDirectory = "c:\\";
            openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
            openFileDialog1.FilterIndex = 2;
            openFileDialog1.RestoreDirectory = true;

            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    if ((myStream = openFileDialog1.OpenFile()) != null)
                    {
                        using (myStream)
                        {
                            string strfilename = openFileDialog1.FileName;
                            string filetext = File.ReadAllText(strfilename);
                            textBox1.Text = filetext;
                            button1.PerformClick();
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
                }
            }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM