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