为啥复制系列图片总显示没有足够的可用空间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥复制系列图片总显示没有足够的可用空间相关的知识,希望对你有一定的参考价值。

我的D盘有剩余空间36GB,其中的一个文件加1.5GB,再往该文件夹复制700MB的文件,总显示“不能复制......,没有足够的可用磁盘空间...”,我的操作系统是WINDOWS 2000 server,是服务器.请问这是什么原因?
谢谢各位,我已经把虚拟内存扩大到最大,但还是“无法复制,....”,已经分配了16380MB了,还是无法复制

你的虚拟内存太小了,你可以把虚拟内存弄大点.
方法是:右击“我的电脑”选择“属性” “高级” 性能“设置” 出现性能对话框,选择“高级” 选择“更改” 出现虚拟内存对话框,将自定义大小的初始大小,和最大值都设成你物理内存的3倍,可以啦。
如果你的内存是512,你就设成1536。设置,确定。完成
参考技术A 应该是你的虚拟内存太小了。 参考技术B 这肯定是虚拟内存不够了,你可以把虚拟内存弄大点

为啥计算的可用和总驱动器空间上限为 2G?

【中文标题】为啥计算的可用和总驱动器空间上限为 2G?【英文标题】:Why is calculated Free & Total drive space capping out at 2G?为什么计算的可用和总驱动器空间上限为 2G? 【发布时间】:2014-10-27 10:24:08 【问题描述】:

我编写了一个目录信息实用程序,并且(因为我和我为收集和使用老式硬件而编写此程序的人)使它与 DOS 和 Windows 9x 以及 Windows XP/Vista/7/8 64 位兼容(因为我们也使用这些。)我遇到的问题是,在 Windows 9x 中,即使在更大的驱动器上,它也将可用驱动器空间和总驱动器空间报告为 2G(以及 1.9997 G)。在 Windows XP 及更高版本(32 位或 64 位)上,它会正确报告驱动器大小。当然,在 DOS 中,这不是问题,因为 DOS 中的最大大小已经是 2G。

我使用的代码是(DInfo.Path 是正在访问的目录,[0] 是驱动器号 - A、B、C 等...):

_dos_getdiskfree(DInfo.Path[0] - 'A' + 1, &Free);

BlockSize = Free.sectors_per_cluster * Free.bytes_per_sector;

for (i = 0; i < BlockSize; i++) 
    DriveBytes += Free.total_clusters;
    if (DriveBytes < Free.total_clusters) ++DBOverflow;
    FreeBytes += Free.avail_clusters;
    if (FreeBytes < Free.avail_clusters) ++FBOverflow;

DOS 存根中的代码与可执行文件的 Windows 部分之间的唯一区别是 _dos_getdiskfree 被替换为 _getdiskfree。我在上面的代码中使用了 unsigned __int32 变量(或者对于 DOS 代码使用 unsigned long)。我使用 32 位是为了兼容性,并在将 DOS 代码转换为 Windows 代码时尽可能减少代码的重写。在 Windows XP+ 中,我可能可以通过使用 __int64 变量来简化事情,但同样,我不确定 Windows 9x 是否会提供这些。我什至不确定 32 位版本的 Windows XP+ 是否允许它,并且真的不想研究它,只是稍微简化一下。即使在较旧的硬件上,它的循环速度也足够快。

使用 32 位整数的溢出和字节变量,大小应最大为 8 艾字节(千字节、兆字节、千兆字节、太字节、拍字节、艾字节,如果您想知道的话),并且由于测量了当前可用的最大驱动器以个位数 TB 为单位,该限制暂时不会造成问题。至少在我有生之年这样做是值得怀疑的。

【问题讨论】:

听起来有点像向后兼容的东西; Windows 95 可能对您撒谎,因为它担心您将无法处理真相。代码是在 32 位还是 16 位模式下运行的?你确定它不是在运行 DOS 版本吗? 见support.microsoft.com/kb/231497 【参考方案1】:

answer provided by Raymond Chen in a comment 已解决此问题。使用 GetDiskFreeSpaceEx 而不是 GetDiskFreeSpace 会产生正确的结果。

【讨论】:

请单独发布有关 DOS 7.0 的问题。 (虽然我认为答案是做不到。) 也许你可以在这里给出答案,以避免链接失效。 实际上,这应该是可能的,因为已经有 exe 和 com 文件可以这样做(chkdsk.exe 立即浮现在脑海。)它们在 DOS 7.x 中工作得很好,无需加载 Windows。问题是,从挖掘 chkdsk 的反汇编开始,它通过 DOS INT 调用来实现,到目前为止,这些是我能找到的唯一方法。仍在尝试使其正常工作(继续获得 0 个集群,每个集群 0 个扇区,每个扇区 514 个字节。)我真的只想在 DOS 7.x 上执行此操作,但在运行时获取 DOS 版本通常不是这么大的事。 @Useless:差不多了;唯一重要的信息是您需要使用 GetDiskFreeSpaceEx 而不是 GetDiskFreeSpace。 @user3399848:chkdsk 的工作原理是直接分析卷的内容。我假设您不想这样做,因为这意味着锁定音量 - 但想想在您的情况下这可能不是问题。你仍然需要部分地重新实现 FAT,但你也许可以从 FreeDOS 或其他地方借用代码。

以上是关于为啥复制系列图片总显示没有足够的可用空间的主要内容,如果未能解决你的问题,请参考以下文章

正在保存备份的磁盘没有足够的可用空间

树莓派外部安装的 NTFS 磁盘上没有足够的可用空间

获取磁盘空间错误,但有足够的可用磁盘空间

java SD卡相关的工具类包括获取SD卡是否可用,剩余空间,总空间,剩余空间是否足够..当然你必须先申请访问SD卡的权限。

为啥计算的可用和总驱动器空间上限为 2G?

Origin中做的图为啥复制到word内不能再用Origin打开,双击出现word中的图片设置的格式