我想知道如果这是可能写到自由空间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#,但你可以把它自己随便写, 通过打开一个文件,并写入字节(0)到它,直到磁盘是全

注意到有些文件系统会限制你的最大文件大小

这已经为我工作获得的免费空间的一个驱动器(C#),通过 系统。管理

ManagementObject di = new ManagementObject("win32_logicaldisk.deviceid=\"C:\"");
di.Get();
UInt64 freeSpace = (UInt64)di["FreeSpace"]; //in bytes

现在你可以编写的文件命名为通过系统。Guid。NewGuid()填补的所有空间(使用多个文件系统的集群的大小)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top