0

我正在做一个将 .zip 文件解压缩到路径“C:\Program Files (x86)”的项目。它返回错误:

Ionic.Zip.dll 中出现“System.UnauthorizedAccessException”类型的未处理异常

我搜索了很多,但我无法理解解决此问题的方法。请帮帮我 。

我的代码:

namespace UTAD__VPN_w7
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

        }

        private void buscarpasta()
        {
            DialogResult result = this.folderBrowserDialog1.ShowDialog();
            if (result == DialogResult.OK)
            {

                /*string pedro = folderBrowserDialog1.SelectedPath;
                string pedro2 = pedro.Replace("\\", "\\\\");
                textBox1.Text = pedro2;*/
                string pasta1 = folderBrowserDialog1.SelectedPath;
                var pasta2 = pasta1.Replace(@"\", @"\\");
                textBox1.Text = pasta2;

            }
        }

        private void MyExtract()
        {


            string zipToUnpack = "C:\\Users\\Zé Eduardo\\Music\\Cisco.zip";
            string unpackDirectory = textBox1.Text;
            using (ZipFile zip1 = ZipFile.Read(zipToUnpack))
            {
                // here, we extract every entry, but we could extract conditionally
                // based on entry name, size, date, checkbox status, etc.  
                foreach (ZipEntry e in zip1)
                {

                    e.Extract(unpackDirectory, ExtractExistingFileAction.OverwriteSilently);
                }
            }
        }





        private void button1_Click(object sender, EventArgs e)
        {
            buscarpasta();




        }
}

我得到文件夹browserdialog1的路径,然后我解压缩单击按钮1

4

3 回答 3

2

您的程序可能需要以提升的权限(例如,以管理员身份)运行。查看 MSDN 文档以创建将您的应用程序标记为需要提升的清单 ( http://msdn.microsoft.com/en-us/library/windows/desktop/bb756973.aspx )。要点是这样的:

<requestedExecutionLevel level="requireAdministrator"/>
于 2013-05-10T14:30:17.860 回答
0

以. Visual Studio_ Administrator这是如果应用程序不适合外部使用。

您还可以按照其他答案中的建议修改您的 app.config 以避免与用户相关的问题。

<requestedExecutionLevel level="requireAdministrator"/>
于 2013-05-10T14:21:06.997 回答
0

如果您要解压缩的数据属于您的应用程序,则存储该数据的更好位置可能是由

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)

看起来您正在处理音乐文件,在这种情况下,您可能需要考虑 MyMusic 目录。

有一个系统特殊文件夹的列表。使用它们将确保您的程序可以在不同版本的 Windows 上运行,并且如果您使用适当的文件夹,文件系统权限不会有问题。

于 2013-05-13T17:52:12.253 回答