DLL加载硬链接

时间:2010-07-29 08:15:03

标签: windows visual-studio winapi dll

我正在尝试设计一种方法,该方法有助于从各种产品的公共位置加载DLL。这有助于以下目录结构避免文件复制。

  

INNSTALLDIR /产品1 / bin中
  INNSTALLDIR /产品2 / bin中
  ..
  INNSTALLDIR / ProductN /箱>

我可以在INSTALLDIR中创建一个DLL存储库/目录 - 'DLLrepo',而不是在上面每个产品的bin目录中复制DLL,并使所有产品可以从中加载。我想通过在每个产品的bin目录中的'DLLrepo'中创建每个DLL的硬链接来实现这一点。这有助于解决从WinXP开始的平台问题。使用'探测'方法只能解决Windows Server 2008及更高版本。

如果这种方法看起来像是一种合理的解决方案,我希望得到你的意见。

当我们创建文件的硬链接时,资源管理器或DIR命令不会考虑涉及链接的文件夹的有效大小。它根据目录的总大小来计算链接文件中的实际数据大小。如果我没有错,这是windows中的一个已知问题。有没有可用于验证实际文件夹大小的实用程序?是否可以在目录路径上使用'chkdisk'?我想知道的另一件事是获取在文件数据上创建的链接列表。

1 个答案:

答案 0 :(得分:1)

  

当我们创建一个文件的硬链接时,   资源管理器或DIR命令没有   帐户有效的文件夹大小   涉及链接。它说明了实际情况   链接文件中的数据大小总计   目录的大小。这是一个知道   如果我没有错,在Windows中的问题。是   我可以使用任何实用工具   验证实际的文件夹大小?

对于这部分问题,我可以提供各种答案。当您创建文件硬链接时,并不存在任何“文件”是原始文件的概念。它们中的每一个都指向数据占用的磁盘空间,并通过任何这些引用修改文件会影响通过任何其他硬链接访问时看到的数据。因此,它不是一个已知的“问题”,更多的是“它是如何运作的”。

因此,除非您查看包含链接的文件夹的最高公共父文件夹的大小,否则无法验证“实际文件夹大小”。此时,您可以开始对每个硬链接进行单次计数,以准确了解磁盘上使用的空间。