我已经安装了 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,新位置是:
- 是中小企业基于
- 符合 Windows LANman - 如果您使用符号链接/想要重新定位到网络服务器/设备(请参阅下文()
- 可以添加/分配到现有文件系统/“
My Computer
“使用类似以下工具:
- DOS/Windows shell
assign
命令 - Windows“计算机管理”(
compmgmt.msc
)
- 可以将其安装到驱动器号或其他安装点/目录
##因此,从今天(2014-05-02)开始,我们讨论的是:
- 另一个活动(已安装)分区
- 具有 FAT 或 NTFS 等实时文件系统的光盘(CD、DVD 等)
- 外部硬盘
- USB 驱动器
- 网络驱动器
笔记:
如果系统提示您输入媒体或收到有关缺少文件/缺少位置的任何错误,您只需确保重新安装/重新插入您的驱动器/媒体(如果它还不是活动分区)。
。
##10 次中有 9 次都会是这种情况:因此,您会发现这非常简单,并且您有几个很好的选择可供选择,坦率地说,它们产生的结果大致相同:
创建到新位置的目录连接:
- 连接点允许一个目录指向另一个目录。
- 连接点只能用于本地存储
- 它们在文件系统级别被识别为文件系统表 (FSTAB) 中的别名条目。
- 因此,它对所有程序都是透明的,包括操作系统本身。
- 换句话说,它不会被视为一个简单指向另一个位置的文件(就像快捷方式一样),因此始终可以顺利运行。
- 连接点只能具有对文件的绝对引用。因此,即使您移动了包含连接点的整个目录结构(结构完好无损),您也必须重新创建连接点。
- 连接点可以命名为任何名称,即它们不必与其指向的文件夹具有相同的名称。
创建到新位置的符号链接:
- 符号链接是指向其他文件系统对象的文件系统对象。
- 它们类似于连接点,并且是重新解析点。
- 然而,在极少数情况下,我看到一些程序无法识别它们(有时Windows 特殊文件夹。
- 但它们在以下方面更加灵活:
- 符号链接可以创建为绝对引用或相对引用。
- 可用于指向 SMB/LANman 网络位置(Windows 服务器、SMB 设备等)
#程序:
##因此,将您的文件和文件夹移动到新位置:
选项 1(本地):只需发出内置的 Windows Vista / 7 / 8 命令和 cmd 提示符:
创建一个交界处(“硬”链接到目录):
mklink /J <oldpath> <newpath>
创建一个符号链接(“软”链接到目录):
mklink /D <oldpath> <newpath>
选项2(使用工具):一个很好的替代方案是我已经使用多年的免费便捷实用程序,称为“Link Shell 扩展” (LSE)(或者用谷歌搜索)。
只需下载、解压并运行(无需安装)
LSE 允许您创建:
- 符号链接
- 硬链接
- 路口
- 智能副本
- 智能克隆
- 智能镜子
- 明智之举
- 接头
- 多种来源
- 坦白说,还有一些我从来没有用过的东西
。
这是一款出色的免费产品,它创建一个 Windows 资源管理器上下文菜单,允许您右键单击 LINK-TARGET 文件夹,然后将其拖动到您想要创建实际链接的位置。
当然可以重命名链接到任何你喜欢的。
答案3
答案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 的大小:
- 以动态模式创建 VHD / VHDX(分配给虚拟磁盘的所有大小并非都是文件大小)并赋予其所需的大小(VHD 限制为略小于 2TiB,VHDX 限制为 64TiB),但在 NTFS 上创建它,因为 FAT32 将文件大小限制为小于 4GiB。
- 将虚拟磁盘初始化为 MBR 或 GPT(取决于您的需要,MBR 不支持超过 4 个主分区,并且限制为略小于 2TiB,GPT 限制为 8ZiB,但 Windows XP 无法看到 GPT 驱动器),有关限制的更多信息,请参阅维基百科:en.wikipedia.org/wiki/GUID_Partition_Table
- 根据需要对虚拟磁盘进行分区
- 将所需分区格式化为 NTFS
- 如果您需要移动一个文件夹(您想要移动到其他地方的文件夹)上的数据,请暂时将该新分区安装为任何字母,将数据移动到该分区并将其卸载...但不要删除您移动内容的文件夹。
- 将该分区挂载到该文件夹上
并且 $MFT 有一个技巧可以让它尽可能的小(如果你创建很大的、非常大的 NFTS 分区来保存 ISO 等,这一点非常重要……每个分区中的大文件少于 1000 个):
- 这样做的基础是让初始 $MFT 大小尽可能小
- 如果你放入更多文件并且空间不足,$MFT 将会增长,所以不要担心无法添加文件
- 这是创建分区的正常本机方式,完全没有风险
- 我认为没有理由不以这种方式创建所有 NFTS 分区
该过程非常简单:
- 创建仅具有 8MiB(是的,兆字节,而不是千兆等)的分区,创建普通 NTFS 的大小较小...NTFS 的大小可以较小,但由于它不是完全 NFTS,因此会出现奇怪的事情。
- 将其培养成你想要的实际尺寸
这些步骤使得一件事成为可能:
- 创建分区时,$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。