创建硬链接时遭遇“Access is denied”错误求助
问题场景
为避免MC项目误删,需在游戏存档数据包目录与编程目录间创建硬链接,执行以下CMD命令失败:
mklink /H "C:\Users\(user)\curseforge\minecraft\Instances\1.20.1 quilt\saves\fight test\datapacks\thewolfhearted fight moves" "C:\Users\(user)\MCdatapacks\Thewolfhearted Fighting Moves\Thewolfhearted Fighting Moves"
已尝试重启电脑、以管理员身份运行CMD,问题仍存在。
排查与解决步骤
验证路径有效性
确认源路径C:\Users\(user)\MCdatapacks\Thewolfhearted Fighting Moves\Thewolfhearted Fighting Moves真实存在,目标路径的上级目录C:\Users\(user)\curseforge\minecraft\Instances\1.20.1 quilt\saves\fight test\datapacks已创建,且目标路径本身不存在(硬链接要求目标不能预先存在)。处理长路径限制
Windows默认限制路径长度为260字符,若你的路径超出此限制,需启用长路径支持:- 运行
regedit打开注册表编辑器 - 定位到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem - 修改或新建DWORD(32位)值
LongPathsEnabled,将其数值设为1 - 重启电脑后重新执行命令
- 运行
确认分区一致性
硬链接仅支持同一NTFS分区内创建,检查源路径与目标路径是否在同一磁盘分区(如均为C盘)。若跨分区,需改用软链接(命令替换为mklink /D),但软链接不具备硬链接的文件同步删除保护特性,需注意差异。检查权限配置
确保当前用户对源文件夹有读取/列出内容权限,对目标父目录有写入权限:
右键对应文件夹→属性→安全选项卡,确认权限配置无误,必要时添加当前用户的完全控制权限测试。简化路径名称测试
路径中的空格、长名称可能导致解析异常,临时将源文件夹重命名为短标识(如ThewolfheartedFM),目标路径也改为短名称,执行简化命令:mklink /H "C:\Users\(user)\curseforge\minecraft\Instances\1.20.1 quilt\saves\fight test\datapacks\thewolfheartedfm" "C:\Users\(user)\MCdatapacks\ThewolfheartedFM"若成功,再改回原路径名称。
释放文件占用
关闭所有可能占用源文件夹文件的程序(如MC客户端、代码编辑器),确保文件处于未被锁定状态后重试。
内容的提问来源于stack exchange,提问作者Thewolfhearted

