如果我不一定知道文件夹的结构,但只知道目的地,如何循环浏览文件夹

本文关键字:文件夹 何循环 浏览 循环 不一定 结构 如果 目的地 | 更新日期: 2023-09-27 18:29:44

我正在编写一个程序,该程序需要访问c:'program files'program_name'内部的文件。

我的目标文件将始终位于'program_name'program_name'bin'something.exe 内部

但是,由于程序是从存档中提取的,如果用户不正确地对其进行解压缩,它将只是'program_name'bin'something.exe,跳过整个级别。

目前,我基本上是在获取c:'program files'的内容,收集包含program_name的所有文件夹的名称,然后将它们添加到列表中,然后使用列表循环浏览其中的每一个文件夹,看看其中是否有program_name,等等,这应该会让我最终得到结果。

基本上,我为每种可能性创建大块的代码。有更聪明的方法吗?

如果我不一定知道文件夹的结构,但只知道目的地,如何循环浏览文件夹

听起来你可以从一个写入注册表的安装程序中受益。然后你就会知道所有的文件和文件夹在哪里,即使用户安装到了一个奇怪的位置。

要扩展Charlie所说的内容,您可以将原始应用程序封装在某种统一安装程序类型的东西中,该东西将编写注册表并将应用程序提取到用户决定的任何位置。安装程序会提示用户要安装到的位置,并提取到该位置。InnoSetup可以被配置为写入卸载信息、放置卸载链接等。您可以自定义InnoSetum脚本的卸载程序部分,以执行您需要的任何清理,和/或在必要时调用其他外部程序。

InnoSetup允许你在实际的安装程序exe中打包东西,所以你只需要分发一个flle。我可以验证这是否有效——尽管我从未尝试过将其用于打包巨大的文件。

以下是InnoSetup的链接:http://www.jrsoftware.org/isinfo.php