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

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

我需要真实的监控一个新文件是否在一个文件夹中创建。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函数。
就像

  1. procedure TestMemoryStream;
  2. var
  3. LMem: DNMemoryStream;
  4. LBytes: TArray<Byte>;
  5. B: Byte;
  6. LReadLen: Integer;
  7. begin
  8. LMem := TDNMemoryStream.Create;
  9. LMem.Write([1,2,3,4,5], 0, 5);
  10. LMem.WriteByte(121);
  11. LMem.Flush;
  12. LMem.Position := 0;
  13. Writeln('data Length: ', LMem.Length);
  14. SetLength(LBytes, LMem.Length);
  15. LReadLen := LMem.Read(LBytes, 0, Length(LBytes));
  16. Writeln('len: ', LReadLen);
  17. for b in LBytes do
  18. Write(b, ' ');
  19. Writeln;
  20. end;
展开查看全部

相关问题