繁体   English   中英

如何以编程方式格式化未分配的空间?

[英]How to programmatically format unallocated space?

我正在寻找一个可以以编程方式格式化给定驱动器上未分配空间的代码段。

我理想地是在寻找.net代码(VB.NET C#)或C ++。

非常感谢

最好的选择似乎是使用WMI。 特别是,您需要查看Win32_Volume类的Format方法。

您可以改用Win32 API的SHFormatDrive函数。 这可能是更简单的选项(尤其是在C ++中),尽管我不确定功能与WMI方法的比较。 编辑:正如M. Jahedbozorgan指出的那样,这似乎打开了Explorer外壳程序对话框来格式化驱动器。

第三种选择是从代码运行命令行format.exe (然后从stdout流中读取),但这显然不是一个很好的解决方案。

在MSDN论坛上的该线程中给出了其他建议。

创建一个充满整个驱动器的文件,然后向其中写入随机数据,然后刷新并关闭它。

跨多个配置(例如NTFS压缩卷或每个用户的配额)可靠地执行第一步可能是最困难的。

或从命令行使用“ cipher / w”。

Windows似乎仅提供一种格式化整个卷的方法,而不仅仅是未分配的空间。

因此,如果我正确理解您的问题,则可以在驱动器的剩余空间中创建一个分区,然后格式化该新分区。

您将要使用PInvoke和WMI的Win32_Volume。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM