Windows 10下MTP传输GoPro文件时,传输中文件占用空间异常依赖目标硬盘剩余空间的问题咨询
Windows 10下MTP传输GoPro文件时,传输中文件占用空间异常依赖目标硬盘剩余空间的问题咨询
嗨,这个问题其实是Windows下MTP协议的一个常见“坑”,我来帮你拆解原因和解决办法:
为什么会出现这个情况?
MTP(媒体传输协议)本身并非为大文件批量传输设计,Windows对MTP设备的文件处理逻辑存在特殊问题:
- 当你从GoPro这类MTP设备传输文件到外置硬盘时,Windows会先创建一个预分配大小的占位文件,但这个预分配的大小不是文件实际大小,而是目标硬盘当前的剩余空间最大值!
- 根源在于MTP协议无法提前准确告知Windows文件的真实大小(或者说Windows自带的MTP驱动处理逻辑有缺陷),系统为了避免传输中途出现空间不足,就直接把当前剩余空间全预分配给正在传输的文件,等传输完成后再将文件修剪到实际大小。
- 批量传输时,系统没及时更新剩余空间的计算逻辑,还是按第一个文件传输前的剩余空间来判断后续操作,导致后续文件的预分配操作直接触发“磁盘空间不足”的错误。
怎么解决这个问题?
这里有几个实用的方案,按推荐程度排序:
1. 先转存到本地硬盘,再移至外置硬盘
这是最稳妥的办法,完全规避MTP的逻辑缺陷:
- 先把GoPro里的文件传输到电脑的本地磁盘(比如C盘/D盘),本地磁盘用的是常规文件系统,不会出现预分配空间异常的问题。
- 再把本地的文件复制到外置硬盘,此时系统会严格按照文件实际大小占用空间,不会出现虚高的情况。
2. 使用robocopy命令绕过图形界面传输
Windows自带的命令行工具robocopy能绕过图形界面的MTP处理逻辑,直接按文件实际大小传输:
- 打开命令提示符(
cmd)或者PowerShell,输入类似这样的命令:
把命令里的源路径换成你的GoPro在资源管理器里的实际路径,目标路径换成外置硬盘的文件夹路径即可。robocopy "This PC\GoPro Hero 9\SD Card\DCIM\100GOPRO" "D:\GoProVideos" *.MP4 /E
3. 改用第三方MTP传输工具
Windows自带的MTP驱动优化不足,可以试试专门的第三方工具:
- WinMTP:针对MTP传输做了优化,能准确识别文件真实大小,避免过度预分配空间。
- FreeFileSync:支持MTP设备的同步工具,传输逻辑更合理,不会出现虚占空间的问题。
4. 修改注册表禁用预分配(不推荐,风险较高)
这个方法需要修改系统注册表,效果不稳定且有风险,仅作为备选:
- 按下
Win+R打开运行窗口,输入regedit回车打开注册表编辑器。 - 定位到路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WpdMtpDriver - 右键新建一个DWORD(32位)值,命名为
DisablePreallocation,设置其值为1。 - 重启电脑后再尝试传输,看是否能解决问题。
注意:修改注册表前请务必备份注册表,避免误操作导致系统问题!
总结
最省心的解决方案还是先转存到本地硬盘再移至外置硬盘,或者使用robocopy命令传输,这两个方法能有效解决批量传输时的空间不足问题,操作也相对简单。
备注:内容来源于stack exchange,提问作者Franck Dernoncourt
相关产品推荐
相关产品推荐

