Windows 7 虚拟文件夹?

Windows 7 虚拟文件夹?

我已经安装了 Steam。Steam 安装在 c:\Program Files\Steam。Steam 将各种游戏下载到名为 SteamApps 的子文件夹中。唯一可用的选项是让 steam 下载并安装应用程序到与 steam 相同的位置。典型的设置可能如下所示:

C:\Program Files\Steam\SteamApps\common\Game1
C:\Program Files\Steam\SteamApps\common\Game2
C:\Program Files\Steam\SteamApps\common\Game3
C:\Program Files\Steam\SteamApps\common\Game4

ETC。

我的 C 盘是 SSD,所以空间是个问题。Game1 占用大量磁盘空间,所以我需要将其保留在 C 盘上,但我还有一大笔空间,我想安装 Game2 和 Game3。

有没有办法创建一个名为“Game2”的虚拟文件夹,该文件夹实际上指向我的更大硬盘,并使 Steam(或任何应用程序)能够浏览到驱动器 C 上的位置,甚至没有意识到它实际上是在访问驱动器 D:虚拟文件夹指向的位置?

所以最后,C:\Program Files\Steam\SteamApps\Common\Game2 将作为文件夹存在,但实际上它映射到 D:\Games\Game2。

答案1

请尝试以下操作:

使用管理权限打开命令提示符:

mklink /D 虚拟文件夹在这里 真实文件夹在这里

例如,您想将某些内容安装到 D:\Games,但希望它显示为 C:\Games。

mklink /DC:\Games D:\Games

这将创建一个文件夹 D:\Game,它也显示为 C:\Game。任何引用 C:\Game 的内容都将重定向到 D:\Game。

由于我对 steam 并不完全熟悉,因此我没有给出与您的确切文件夹匹配的示例。如果 steam 允许您选择要安装到的文件夹(由于您不只是将其安装到其他驱动器,我不太确定它是否允许。)您可以先创建符号链接。但是,如果没有,您可能需要进行一些文件传输,将其移动到新位置,然后创建符号链接。示例:

Steam 将您的游戏安装到:C:\Program Files\Steam\SteamApps\common\Game2

现在,创建文件夹:D:\GameGoesHere

然后,你把原文件夹里的所有文件复制出来放到D:\GameGoesHere,然后就可以创建链接了:

mklink /D “C:\Program Files\Steam\SteamApps\common\Game2” “D:\GameGoesHere”

请注意,这次我使用了引号,因为“Program Files”的空格太多。还请注意,在创建链接之前,虚拟文件​​夹不能是真实文件夹。因此,如果您想要作为链接的文件夹存在,您必须先将其删除(当然,在复制它之前不能删除它!)

答案2

#ANSWER:为什么(以及如何)此解决方案有效


如果你需要回收这个空间/将使用空间转移到另一个驱动器上,你有几个不错的选择

您可以安全地重新定位到任何新的存储位置,例如……

  • 本地/实时存储
  • 在线存储
  • 近线存储
  • 离线存储

...只是只要您的旧位置是 NTFS,新位置是:

  1. 中小企业基于
  2. 符合 Windows LANman - 如果您使用符号链接/想要重新定位到网络服务器/设备(请参阅下文()
  3. 可以添加/分配到现有文件系统/My Computer使用类似以下工具:
  • DOS/Windows shellassign命令
  • Windows“计算机管理”(compmgmt.msc
  1. 可以将其安装到驱动器号或其他安装点/目录

##因此,从今天(2014-05-02)开始,我们讨论的是:

  • 另一个活动(已安装)分区
  • 具有 FAT 或 NTFS 等实时文件系统的光盘(CD、DVD 等)
  • 外部硬盘
  • USB 驱动器
  • 网络驱动器

笔记:

如果系统提示您输入媒体或收到有关缺少文件/缺少位置的任何错误,您只需确保重新安装/重新插入您的驱动器/媒体(如果它还不是活动分区)。

##10 次中有 9 次都会是这种情况:因此,您会发现这非常简单,并且您有几个很好的选择可供选择,坦率地说,它们产生的结果大致相同:

  1. 创建到新位置的目录连接:

    • 连接点允许一个目录指向另一个目录。
    • 连接点只能用于本地存储
    • 它们在文件系统级别被识别为文件系统表 (FSTAB) 中的别名条目。
      • 因此,它对所有程序都是透明的,包括操作系统本身。
      • 换句话说,它不会被视为一个简单指向另一个位置的文件(就像快捷方式一样),因此始终可以顺利运行。
    • 连接点只能具有对文件的绝对引用。因此,即使您移动了包含连接点的整个目录结构(结构完好无损),您也必须重新创建连接点。
    • 连接点可以命名为任何名称,即它们不必与其指向的文件夹具有相同的名称。
  2. 创建到新位置的符号链接:

    • 符号链接是指向其他文件系统对象的文件系统对象。
    • 它们类似于连接点,并且是重新解析点。
    • 然而,在极少数情况下,我看到一些程序无法识别它们(有时Windows 特殊文件夹
    • 但它们在以下方面更加灵活:
      • 符号链接可以创建为绝对引用或相对引用。
      • 可用于指向 SMB/LANman 网络位置(Windows 服务器、SMB 设备等)

#程序:


##因此,将您的文件和文件夹移动到新位置:

  1. 选项 1(本地):只需发出内置的 Windows Vista / 7 / 8 命令和 cmd 提示符:

    • 创建一个交界处(“硬”链接到目录):

        mklink /J <oldpath> <newpath>
      
    • 创建一个符号链接(“软”链接到目录):

        mklink /D <oldpath> <newpath>
      
  2. 选项2(使用工具):一个很好的替代方案是我已经使用多年的免费便捷实用程序,称为“Link Shell 扩展” (LSE)(或者用谷歌搜索)。

    只需下载、解压并运行(无需安装)

    LSE 允许您创建:

    • 符号链接
    • 硬链接
    • 路口
    • 智能副本
    • 智能克隆
    • 智能镜子
    • 明智之举
    • 接头
    • 多种来源
    • 坦白说,还有一些我从来没有用过的东西

    这是一款出色的免费产品,它创建一个 Windows 资源管理器上下文菜单,允许您右键单击 LINK-TARGET 文件夹,然后将其拖动到您想要创建实际链接的位置。

    当然可以重命名链接任何你喜欢的

答案3

令人震惊的是,专为此目的的工具称为 steam mover,旨在解决同样的问题,在 windows 7 中有效。这确实是一种巧妙伪装的方式符号链接很容易。基本上它会自动移动文件并为您创建符号链接,因此一切似乎都在 steam 期望的位置,即 C: 中,但实际上它在其他地方。

我要指出的是,这只适用于 Windows 7 和 Vista,因为微软在这些版本的 Windows 中添加了符号链接

答案4

连接点可以指向任何 NTFS 文件夹,无论源和目标位于哪个磁盘上。

由于 WinXP Junctions 可以与任何直接连接的 NTFS 分区一起工作,无论它们位于同一磁盘还是不同的磁盘上。

因此,有一个连接点是最好的解决方案(象征性的可能会导致一些问题)。

我经常用它来做这件事:

  • 系统分区(通常为 C:)上有一些“虚拟”文件夹,指向 USB 磁盘(SSD、HDD、U盘、存储卡等)上分区的文件夹。

因此,我可以在外部媒体上拥有一些应用程序数据,并且对于多台 PC 只需一个副本,因此无需进行同步等。当然,只有一台 PC 可以同时看到它。

连接点还可以指向由 veraCrypt 等加密的 NTFS 分区上的文件夹。

连接点只需要三样东西:

  • 源分区为 NTFS
  • 目标分区为 NTFS
  • 两个分区都是本地的(物理连接到 PC)...这并不总是需要的,有一些工具可以让您将 FTP 作为本地驱动器并将其视为 NTFS,因此可以创建指向该驱动器的连接

我的意思是连接需要看到源和目标位于 NTFS 分区内。

  • 对于 XP,请使用名为 的 SysInternals 工具junction,链接:TechNet 连接下载
  • mklink对于 7 到 10,请使用带参数的本机工具/j

两者都是命令行工具,并且大多数时候需要管理员权限。

连接是最简单的方法,但不是唯一的方法:

  • 您可以使用挂载在不同磁盘上的 NTFS 文件夹的 NTFS 分区
  • 您可以创建一个 VHD /VHDX 文件(XP 和 Vista 需要工具,7 到 10 在磁盘管理上原生执行),在其中创建一个或多个分区并将它们挂载到任何 NTFS 文件夹中
  • ETC

VHD / VHDX 的技巧还允许您使用动态存储,因此无需担心 GiB 的大小:

  1. 以动态模式创建 VHD / VHDX(分配给虚拟磁盘的所有大小并非都是文件大小)并赋予其所需的大小(VHD 限制为略小于 2TiB,VHDX 限制为 64TiB),但在 NTFS 上创建它,因为 FAT32 将文件大小限制为小于 4GiB。
  2. 将虚拟磁盘初始化为 MBR 或 GPT(取决于您的需要,MBR 不支持超过 4 个主分区,并且限制为略小于 2TiB,GPT 限制为 8ZiB,但 Windows XP 无法看到 GPT 驱动器),有关限制的更多信息,请参阅维基百科:en.wikipedia.org/wiki/GUID_Partition_Table
  3. 根据需要对虚拟磁盘进行分区
  4. 将所需分区格式化为 NTFS
  5. 如果您需要移动一个文件夹(您想要移动到其他地方的文件夹)上的数据,请暂时将该新分区安装为任何字母,将数据移动到该分区并将其卸载...但不要删除您移动内容的文件夹。
  6. 将该分区挂载到该文件夹​​上

并且 $MFT 有一个技巧可以让它尽可能的小(如果你创建很大的、非常大的 NFTS 分区来保存 ISO 等,这一点非常重要……每个分区中的大文件少于 1000 个):

  • 这样做的基础是让初始 $MFT 大小尽可能小
  • 如果你放入更多文件并且空间不足,$MFT 将会增长,所以不要担心无法添加文件
  • 这是创建分区的正常本机方式,完全没有风险
  • 我认为没有理由不以这种方式创建所有 NFTS 分区

该过程非常简单:

  1. 创建仅具有 8MiB(是的,兆字节,而不是千兆等)的分区,创建普通 NTFS 的大小较小...NTFS 的大小可以较小,但由于它不是完全 NFTS,因此会出现奇怪的事情。
  2. 将其培养成你想要的实际尺寸

这些步骤使得一件事成为可能:

  • 创建分区时,$MFT 非常小(因为分区大小只有 8MiB)

如果您创建的分区大小为您想要的最大值,则 $MFT 将(默认情况下尽可能少)为分区大小的 12.5%;我不知道有什么方法可以减少该百分比,也不知道如何在创建后减少 $MFT 大小;在某些 Windows 上,该百分比可能会因 NtfsMFTZoneReservation 注册表项而变得更大,但绝不会更小……因此,通过创建仅 8MiB 的分区,$MFT 初始大小将非常小。您可以在 Microsoft 网站上查看如何保留 $MFT 空间: NTFS 如何为其主文件表 (MFT) 保留空间

增加 NTFS 分区大小不会影响 $MFT 大小...因此,为了拥有一个具有尽可能小的 $MFT 大小的巨大的 NTFS 分区,请将分区创建为仅 8MiB,并在创建后将其增加到所需大小。

这对于拥有动态 VHD / VHDX 来说非常棒,因为它不会白白使用所有的 $MFT 空间……我的意思是:

  • 如果你创建一个 8MiB 的 NTFS(不要忘记在快速格式化模式下执行它)并增长到 1.5TiB,则保存它的文件 VHD / VHDX 会更小,小得多
  • 如果直接在 VHD/VHDX 中创建 1.5TiB 分区,则保存它的 VHD/VHDX 文件会更大,大得多

在 Windows 10 Home 64Bits 中完成的测试:

  • 1.8TiB 的动态 VHD,创建一个 NTFS 分区(使用快速格式化),大小为 8MiG,增长到 1.5GiB ... VHD 大小为:15.6MiB
  • 1.8TiB 的动态 VHD,创建一个 1.5GiB 的 NTFS 分区(快速格式化)... VHD 大小为:107MiB

瞧,它大了十倍。我知道谈论一百兆字节并不算什么……但是如果你使用大量(几千个)VHD / VHDX 文件,那么这个大小就很重要了,如果一千个这样的文件,那就接近 100GiB。此外,对于 VHDX 和 ZetaBytes 的大小来说,这种差异确实很大。

注意:我谈论 1.8TiB 的磁盘大小只是为了确保我可以创建一个完全相同大小为 1.5TiB(1572864 MiB)的分区...如果您输入 X 的磁盘大小,则分区将小于 X。

相关内容