Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何通过代码直接读/写存储的计算机数据_C#_Memory Management_Binary - Fatal编程技术网

C# 如何通过代码直接读/写存储的计算机数据

C# 如何通过代码直接读/写存储的计算机数据,c#,memory-management,binary,C#,Memory Management,Binary,每当我在谷歌上搜索如何安装硬盘时,无论我如何尝试,我都会得到关于如何安装新硬盘、RAM等的答案,或者关于硬盘和RAM如何工作的信息 假设我使用的是C#,我将如何尝试直接更改计算机保存的数据,例如直接更改二进制文件 在这个问题上我可能会感到困惑,所以我将举一个例子,说明我认为是一个程序在这样做。AVG有一个“数据粉碎机”功能,我认为它不可能恢复已删除的文件,因为我假设它会将文件所在的分配面上的二进制(或其他内容)更改为随机值。我如何用C#(或任何其他语言)实现这一点 同样,AVG如何将数据移动到“

每当我在谷歌上搜索如何安装硬盘时,无论我如何尝试,我都会得到关于如何安装新硬盘、RAM等的答案,或者关于硬盘和RAM如何工作的信息

假设我使用的是C#,我将如何尝试直接更改计算机保存的数据,例如直接更改二进制文件

在这个问题上我可能会感到困惑,所以我将举一个例子,说明我认为是一个程序在这样做。AVG有一个“数据粉碎机”功能,我认为它不可能恢复已删除的文件,因为我假设它会将文件所在的分配面上的二进制(或其他内容)更改为随机值。我如何用C#(或任何其他语言)实现这一点

同样,AVG如何将数据移动到“碎片整理”?我假设它会将数据读写到磁盘的“前端”,因此读取速度更快


我希望我已经说清楚了,我认为这也取决于操作系统。

您所说的是对原始磁盘扇区的访问。如果不使用一种叫做PInvoke的技术,C#就无法访问该级别,这种技术非常先进。这种访问需要详细了解各种磁盘布局结构,如NTFS和FAT32,以及分区方案,如GPT。如果不了解这些信息,您很可能会损坏您试图操作的驱动器,导致操作系统无法读取该驱动器。

您所说的是对原始磁盘扇区的访问。如果不使用一种叫做PInvoke的技术,C#就无法访问该级别,这种技术非常先进。这种访问需要详细了解各种磁盘布局结构,如NTFS和FAT32,以及分区方案,如GPT。如果不了解这些信息,您很可能会损坏您试图操作的驱动器,导致操作系统无法读取该驱动器。

出于性能原因,大多数现代操作系统不会擦除硬盘上的数据,而只是将已删除文件占用的空间标记为可用于新数据写入。因此,有时可以删除此标记并访问已删除的数据。要安全地擦除数据,必须覆盖该数据。因此,在C#中,您可以打开一个文件进行读写,并用随机二进制数据覆盖它,然后关闭该文件并刷新磁盘上的缓冲区。此操作可以重复几次,以确保数据丢失。这与主轴硬盘驱动器上的FAT16/32文件系统有关。对于大多数现代存储设备,没有通用的解决方案

如需进一步建议,请查看以下内容:


出于性能原因,大多数现代操作系统不会擦除硬盘上的数据,而只是将已删除文件占用的空间标记为可用于新数据写入。因此,有时可以删除此标记并访问已删除的数据。要安全地擦除数据,必须覆盖该数据。因此,在C#中,您可以打开一个文件进行读写,并用随机二进制数据覆盖它,然后关闭该文件并刷新磁盘上的缓冲区。此操作可以重复几次,以确保数据丢失。这与主轴硬盘驱动器上的FAT16/32文件系统有关。对于大多数现代存储设备,没有通用的解决方案

如需进一步建议,请查看以下内容:


尝试在edX上参加哈佛大学的CS50课程。。。本书将详细介绍文件的实际内容、“切碎”和数据恢复的实际工作方式。这样你就能更好地接近你想做的事情。现在我被否决了,没有任何解释。无论是谁做的,请解释我的问题“……没有显示任何研究成果。。。“不清楚或没有用处”。谢谢。@DavidAnderton我来看看,我要描述的有什么特别的词吗?我找不到。不是我,我想这个问题不理解内存和文件存储的工作方式——但这就是你问的原因。我建议你去上那门课。要了解其他方面的知识,文件系统可能相当枯燥。好吧,简单地解释一件事。。。删除文件时,通常不会删除该文件的数据。你基本上只是失去了你的链接,并宣布该空间免费使用。AVG将在你的文件所在的位置写入新的随机数据,以确保只有有人在你的“空闲”空间中搜索丢失的文件时才能恢复文件尝试在edX上参加哈佛大学的CS50课程。。。本书将详细介绍文件的实际内容、“切碎”和数据恢复的实际工作方式。这样你就能更好地接近你想做的事情。现在我被否决了,没有任何解释。无论是谁做的,请解释我的问题“……没有显示任何研究成果。。。“不清楚或没有用处”。谢谢。@DavidAnderton我来看看,我要描述的有什么特别的词吗?我找不到。不是我,我想这个问题不理解内存和文件存储的工作方式——但这就是你问的原因。我建议你去上那门课。要了解其他方面的知识,文件系统可能相当枯燥。好吧,简单地解释一件事。。。删除文件时,通常不会删除该文件的数据。你基本上只是失去了你的链接,并宣布该空间免费使用。AVG会在你的文件所在的位置写下新的随机数据,以确保只有有人在你的“空闲”空间中搜索丢失的文件才能恢复。好吧,你给了我一些术语,我可以在谷歌上使用,但我不确定这是正确的答案,因为我不完全理解你的答案。我至少现在会投票支持你的答案。好吧,你给了我一些我可以用在谷歌上的行话,但我不确定这是正确的答案,因为我不完全理解你的答案。我至少会投你的赞成票