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

时间:2012-03-30 23:59:43

标签: c# search recursion directory

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

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

但是,因为程序是从存档中提取的,如果用户不正确地解压缩它,它将只是\program_name\bin\something.exe,跳过整个级别。

目前我基本上是获取c:\program files\的内容,收集包含program_name的所有文件夹的名称,然后将它们添加到列表中,然后使用列表循环遍历每个文件夹看看里面是否有program_name等等,应该最终引导我查看结果。

基本上我正在为每种可能性创建大量代码。有更明智的方法吗?

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

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

InnoSetup允许您在实际的安装程序exe中打包东西,因此您只需分发一个flle。我可以验证这是否有效 - 尽管我从来没有尝试过包装大文件。

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