如何应对"磁盘已满"的情况?

Sva*_*nte 10 error-handling diskspace

绝大多数应用程序无法正确处理"磁盘已满"方案.

示例:安装程序没有看到磁盘已满,忽略所有错误,最后愉快地宣布"安装完成!",或者电子邮件程序不知道它刚下载的消息无法保存,并告诉服务器删除原始.

有什么技术可以优雅地处理这种情况?你用它们吗?你测试它们吗?

Ada*_*iss 7

作为用户,我希望软件:

  1. 保留我的数据.
  2. 我做任何实际工作之前,尽早验证我的环境.
  3. 如果#2不可能,请告诉我任何特殊要求.
  4. 自己清理干净.

作为开发人员,执行此操作的技术包括:

  1. 在没有其他选择时中止,并允许用户在前一个失败时有机会做出新选择(请参阅AgentThirteen的回答).
  2. 尽早检查所需资源(内存,磁盘空间,外围设备).如果失败是肯定的,立即停止; 如果成功不确定则显示警告,允许用户选择是否继续.
  3. 预先分配资源以确保它们在需要时仍然可用.
  4. 非模态对话框中显示警告和错误,以便用户可以将应用程序放在后台并使用其他工具来解决问题.
  5. 维护"撤消"列表:到目前为止已执行的操作的历史记录.如果应用程序必须中止,请提供撤消这些操作的机会.