我需要真实的监控一个新文件是否在一个文件夹中创建。System.IO.FileSystemWatcher看起来是一个完美的解决方案。但是在 Delphi 11上,它会报告[dcc32致命错误] F2613找不到单元“System.IO”。我必须下载一些东西才能拥有.pas单元吗?P.S.我已经使用Windows API FindFirstChangeNotification进行了探索,但这并没有提供创建的文件名。
oknwwptz1#
System.IO.FileSystemWatcher是一个.net类,不是 Delphi RTL的一部分。因此,你在任何地方都找不到它。我认为您需要的API函数是ReadDirectoryChangesW。
System.IO.FileSystemWatcher
ReadDirectoryChangesW
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;
2条答案
按热度按时间oknwwptz1#
System.IO.FileSystemWatcher
是一个.net类,不是 Delphi RTL的一部分。因此,你在任何地方都找不到它。我认为您需要的API函数是
ReadDirectoryChangesW
。xxslljrj2#
您也可以使用DDNRuntime( Delphi .NET Framework/.NET核心执行阶段)
https://github.com/ying32/DDNRuntime-examples
它可以帮助您轻松地调用.net函数。
就像