题
我想知道如果这是可能写到自由空间C#?我的意思是喜欢的东西 FreeSpace.WriteAllBytes()
或者像什么一些碎纸机应用程序做什么?
我怎么可以这样做?
解决方案
如果你的意图是简单地改写硬盘上所有可用的自由空间,你可以使用的 GetDiskFreeSpaceEx
API以确定有多少字节是可用的和写入的文件大(或扩散出来中的几个文件)。
P /调用为C#:
[DllImport("kernel32")]
public static extern int GetDiskFreeSpaceExW(string dir, ref ulong freeBytesAvailable,
ref ulong totalNumBytes, ref ulong totalFreeBytes);
您可以像使用System.Random类写在他们面前,以填补随机值的字节数组,如果您可能感兴趣的。
修改:强>是不知道的System.IO.DriveInfo类,其可以是比使用上述API简单的
其他提示
这已经为我工作获得的免费空间的一个驱动器(C#),通过 系统。管理
ManagementObject di = new ManagementObject("win32_logicaldisk.deviceid=\"C:\"");
di.Get();
UInt64 freeSpace = (UInt64)di["FreeSpace"]; //in bytes
现在你可以编写的文件命名为通过系统。Guid。NewGuid()填补的所有空间(使用多个文件系统的集群的大小)。
不隶属于 StackOverflow