在Delphi中为文件添加权重



hi正在阅读以下教程:http://www.forumkorner.com/thread-26894.html,问题是我找到了如何翻译以下代码的方法(VB.net):

Dim file1 = File.OpenWrite("c:/test.exe")
Dim siza = file1.Seek(0, SeekOrigin.[End])
Dim size = Convert.ToInt32("20")
Dim bite As Decimal = size * 1048576
While siza < bite
siza += 1
file1.WriteByte(0)
End While
file1.Close()
End If

问题是我从哪里获得关于如何将字节写入文件的信息?

很明显,OP所指的教程是由某个新手编写的,所以我不会遵循它。

现在,如果你想制作一个只增加特定文件大小的程序,有更简单的方法可以做到。你不一定需要为了增加文件大小而写入文件。

这段代码不需要向其中写入一个字节:

procedure TForm2.Button1Click(Sender: TObject);
var FS: TFileStream;
begin
  if OpenDialog1.Execute then
  begin
    FS := TFileStream.Create(OpenDialog1.FileName,fmOpenReadWrite);
    FS.Size := FS.Size *2;
    FS.Free;
  end;
end;

如何?它只是告诉操作系统,需要将特定文件的大小设置为特定值(通常用于在向文件中写入大量数据之前保留磁盘空间),然后操作系统只更改文件分配表中的信息。

现在,这种方法的最大优点是,在硬盘上,无论所需的文件大小如何,这个过程几乎都会立即完成,而教程OP中所示的方法对于较大的文件需要更多的时间。如果文件在闪存驱动器上,则可能需要一些时间,因为大多数闪存驱动器使用FAT32分区,FAT32分区的工作方式与NTFS有点不同,因此需要将更多数据写入分配表。

编辑:警告!永远不要,我的意思是永远不要把文件大小设置得比现在小!如果你这样做,你将导致数据丢失,可能无法修复。

最新更新