我正在寻找一个代码片段,它会以编程方式格式化给定驱动器上的未分配空间。
我理想地寻找.net代码(VB.NET C#)或C ++。
非常感谢
答案 0 :(得分:2)
最好的选择似乎是使用WMI。特别是,您需要查看Format
类的Win32_Volume
方法。
您可以使用Win32 API的SHFormatDrive
功能。这可能是更简单的选项(特别是在C ++中),但我不确定该功能与WMI方法的比较。 编辑:正如M. Jahedbozorgan所指出的,这似乎打开了Explorer shell对话框来格式化驱动器。
第三个选项是从代码运行命令行format.exe
(然后从stdout流中读取),但这显然不是一个非常好的解决方案。
MSDN论坛this thread中提供了其他建议。
答案 1 :(得分:1)
创建一个文件,填满整个驱动器,然后将随机数据写入其中,然后冲洗它,然后关闭它。
第一步可能是跨多个配置可靠地做到最难的(例如,NTFS压缩卷或每用户配额)。
或者从命令行使用“cipher / w”。
答案 2 :(得分:0)
看起来Windows只提供了一种格式化整个卷的方法,而不仅仅是未分配的空间。
因此,如果我理解你的问题,你可以在驱动器的剩余空间中创建一个分区,然后格式化该新分区。
您将需要使用PInvoke和WMI的Win32_Volume。