我在哪里可以找到System.IO来使用 Delphi 上的FileSystemWatcher?

kkbh8khc  于 2022-11-04  发布在  其他
关注(0)|答案(2)|浏览(172)

我需要真实的监控一个新文件是否在一个文件夹中创建。System.IO.FileSystemWatcher看起来是一个完美的解决方案。但是在 Delphi 11上,它会报告
[dcc32致命错误] F2613找不到单元“System.IO”。
我必须下载一些东西才能拥有.pas单元吗?
P.S.我已经使用Windows API FindFirstChangeNotification进行了探索,但这并没有提供创建的文件名。

oknwwptz

oknwwptz1#

System.IO.FileSystemWatcher是一个.net类,不是 Delphi RTL的一部分。因此,你在任何地方都找不到它。
我认为您需要的API函数是ReadDirectoryChangesW

xxslljrj

xxslljrj2#

您也可以使用DDNRuntime( Delphi .NET Framework/.NET核心执行阶段)
https://github.com/ying32/DDNRuntime-examples
它可以帮助您轻松地调用.net函数。
就像

procedure TestMemoryStream;
var
  LMem: DNMemoryStream;
  LBytes: TArray<Byte>;
  B: Byte;
  LReadLen: Integer;
begin
  LMem := TDNMemoryStream.Create;

  LMem.Write([1,2,3,4,5], 0, 5);
  LMem.WriteByte(121);
  LMem.Flush;
  LMem.Position := 0;

  Writeln('data Length: ', LMem.Length);
  SetLength(LBytes, LMem.Length);
  LReadLen :=  LMem.Read(LBytes, 0, Length(LBytes));
  Writeln('len: ', LReadLen);
  for b in LBytes do
    Write(b, ' ');
  Writeln;
end;

相关问题