当前位置: 首页 > 知识库问答 >
问题:

如何获取程序的当前文件夹名并将zip文件解压缩到C#中的当前文件夹?[重复]

戎高爽
2023-03-14

我有一个Winforms自动更新程序。

如果我打开程序,它将从原始文本中获取文件下载链接,该文本包含从Web到程序的. zip文件下载链接。

但是,如果这个人制作了一个文件夹,并将程序放在文件夹中,我希望程序获得程序所在的文件夹名,并将zip文件解压缩到其中。

这是我的代码:

private void StartDownload()
        {
            WebClient webClient = new WebClient();
            string path = "./Sympathy";
            string address1 = "https://ghostbin.co/paste/cjx7j/raw";
            string address2 = webClient.DownloadString(address1);
            this.progressBar1.Value = 100;
            string str = "./Sympathy.zip";
            if (System.IO.File.Exists(str))
            {
                System.IO.File.Delete(str);
            }
            else
            {
                webClient.DownloadFile(address2, str);
                ZipFile.ExtractToDirectory(str, Directory.GetCurrentDirectory(Directory).Name); 
                System.IO.File.Delete(str);
            }
        }

但是我在(目录)部分有一个错误,我该如何修复它?

共有3个答案

韩弘壮
2023-03-14

使用此行,您可以获得应用程序的当前目录。

Application.StartupPath;

它会给你你的文件夹。exe运行应用程序

贾建茗
2023-03-14

你收到的错误是什么?这将有助于解决你的问题。

您提到您在代码(目录)部分出现错误,我在这一行看到了一些东西:

  1. 方法目录。GetCurrentDirectory不需要输入
  2. 不能将类型作为参数传递
  3. 调用目录。GetCurrentDirectory()返回一个字符串,您不能调用该字符串的属性Name

请注意,此调用的结果并不总是应用程序所在的位置。如果检查超链接的属性,可以设置目标”和起始Target是您的程序,Start in是提供给应用程序的当前目录。除了创建超链接,还可以打开命令提示符(默认为主目录)并键入应用程序的完整路径,这将使应用程序打开并接收命令提示符指向的路径(默认情况下为主目录),作为当前目录。post Get current folder path中的答案对此有更详细的说明。

裴永年
2023-03-14

若要获取可执行文件的路径,请使用System. Reflection. Asset. GetEntryAsset()。位置;,若要获取目录,请使用Path. GetDirectoryName(System. Reflection. Asset. GetEntryAsset()。位置);

我看到你的代码有缺陷。用这个代替,做所有事情:

string archivePath = "Sympathy.zip";
using (var client = new WebClient())
{
    client.DownloadFile(client.DownloadString("https://ghostbin.co/paste/cjx7j/raw"), archivePath);
    ZipFile.ExtractToDirectory(archivePath, Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location));
    File.Delete(archivePath);
}

它起作用了。它下载了一堆未知文件。

 类似资料:
  • 本文向大家介绍python如何获取当前文件夹下所有文件名详解,包括了python如何获取当前文件夹下所有文件名详解的使用技巧和注意事项,需要的朋友参考一下 前言 本文主要给大家介绍了关于python获取当前文件夹下所有文件名的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 os 模块下有两个函数: os.walk() os.listdir() 示例代码: 总结 以上就是这

  • 问题内容: 我尝试解压缩150个zip文件。所有zip文件都使用不同的名称,它们都分散在一个大文件夹中,该文件夹分为许多子文件夹和子子文件夹。我想将每个存档提取到与原始zip文件名相同名称的单独文件夹中,与原始zip文件位于同一位置。我的代码是: 我运行代码后,什么都没有发生。在此先感谢您的任何帮助。 问题答案: 更新: 最后,这段代码对我有用:

  • 问题内容: 我正在尝试压缩包含子文件夹的文件夹。尝试压缩名为10-18-2010_4D的文件夹。以上程序以以下异常结束。请提供有关如何解决此问题的建议。 问题答案: 您需要检查文件是否为目录,因为您无法将目录传递给zip方法。 看一下该页面,该页面显示了如何递归压缩给定目录。

  • 首先,我没有看到任何其他问题可以“直接”帮助我解决问题,这就是为什么我决定创建一个新的问题。 以下代码被编程为解压缩多个文件和文件夹。 这段代码工作正常,但有一个重要的错误:它解压缩文件夹,但不是像这样显示它们: 文件1。txt 它显示了这一点: file1.txt file2.txt file3.txt file4.txt file5.txt file6.txt 我做错了什么?

  • 问题内容: 我有一个包含文件夹结构的zip文件,例如 主文件夹/ subFolder1 / subFolder2 / subFolder3 / 文件3.1 文件3.2 我想使用Java 重命名文件夹,例如在该zip文件中。 有没有比提取整个zip文件并使用新的文件夹名称重新创建一个新的方法更简单的方法? 问题答案: Zip是一种存档格式,因此变异通常涉及重写文件。 zip的某些特殊功能也会受阻(z

  • 我正在尝试为批准我的应用程序的用户获取文件和文件夹(现在,在他批准后,我有了令牌)。 通过获取用户dbid并将其与“Dropbox API Select user”标题一起使用,我可以扫描团队中的所有用户,但有时我只想扫描当前用户(批准我的应用程序的用户)。 我现在无法得到他的dBid,当我尝试在没有“Dropbox-API-选择用户”标头的情况下转到“https://api.dropboxapi