type TsSetData = class(TService) adoCC: TADOConnection; aqTree: TADOQuery; aqGroup: TADOQuery; procedure ServiceStart(Sender: TService; var Started: Boolean); procedure ServiceStop(Sender: TService; var Stopped: Boolean); procedure ServicePause(Sender: TService; var Paused: Boolean); procedure ServiceShutdown(Sender: TService); procedure ServiceExecute(Sender: TService); procedure ServiceContinue(Sender: TService; var Continued: Boolean); procedure ServiceCreate(Sender: TObject); procedure ServiceDestroy(Sender: TObject); procedure ServiceBeforeInstall(Sender: TService); private { Private declarations } public function GetServiceController: TServiceController; override; { Public declarations } end;
var sSetData: TsSetData; LogFile:string;
function WriteLog(sInfo:string):Boolean;
implementation //在网上查到的。试试、
谢谢,我在自己看以下,程序是网上下的,不知道这个函数的作用 procedure TForm1.ViewRemoteList(Dir:string); var DirList:TStringList; i:Integer; ListItem:TListItem; Attribute:TIdDirItemType; begin DirList := TStringList.Create; try try IdFTP1.ChangeDir(Dir); IdFTP1.List(DirList); EditDir.Text := IdFTP1.RetrieveCurrentDir; except on E:Exception do begin WriteLog(E); end; end; finally DirList.Free; end; RemoteListView.Clear; for i:=0 to IdFTP1.DirectoryListing.Count-1 do begin ListItem := RemoteListView.Items.Add(); ListItem.Caption := IdFTP1.DirectoryListing.Items[i].FileName ; ListItem.SubItems.Add(IntToStr(IdFTP1.DirectoryListing.Items[i].Size)); ListItem.SubItems.Add(DateToStr(IdFTP1.DirectoryListing.Items[i].ModifiedDate)); Attribute := IdFTP1.DirectoryListing.Items[i].ItemType; if Attribute=ditDirectory then begin ListItem.SubItems.Add( '目录 '); ListItem.ImageIndex := 0; end else if Attribute=ditFile then begin ListItem.SubItems.Add( '文件 '); ListItem.ImageIndex := 1; end else if Attribute=ditSymbolicLink then begin ListItem.SubItems.Add( '其他 '); ListItem.ImageIndex := 2; end; end; end;
可到一个文本文件里,我写过,不知道对你试用吧?var bOpened:Boolean=false; //日志文件是否打开 LogFile: TextFile; //日志文件 procedure WriteLog(const str: string); var strLog: string; strFileName, strFilePath: string; hLogFile: integer; begin try if not bOpened then //如果文件还没有打开就先打开 begin strFilePath := ExtractFilePath(ParamStr(0)) + 'log'; if not DirectoryExists(strFilePath) then MKDir(PChar(strFilePath)); strFileName := strFilePath + '\' + FormatDateTime('yyyy-mm-dd',Now()) + '.log'; //showmessage(strFileName); if not FileExists(strFileName) then begin //如果文件不存在就先创建 hLogFile := FileCreate(strFileName); if hLogFile > 0 then FileClose(hLogFile) else Exit; end; AssignFile(logFile, strFileName); Append(logFile); bOpened := true; end; strLog := FormatDateTime('yyyy-mm-dd hh:mm:ss',Now()) + '---->' + str; Writeln(logFile, strLog); flush(logFile); except end; end; 在窗口的destory中关闭
interface
uses
Windows, Messages, SysUtils, Classes, Controls, SvcMgr,
ExtCtrls, DB, ADODB,ActiveX;
type
TsSetData = class(TService)
adoCC: TADOConnection;
aqTree: TADOQuery;
aqGroup: TADOQuery;
procedure ServiceStart(Sender: TService; var Started: Boolean);
procedure ServiceStop(Sender: TService; var Stopped: Boolean);
procedure ServicePause(Sender: TService; var Paused: Boolean);
procedure ServiceShutdown(Sender: TService);
procedure ServiceExecute(Sender: TService);
procedure ServiceContinue(Sender: TService; var Continued: Boolean);
procedure ServiceCreate(Sender: TObject);
procedure ServiceDestroy(Sender: TObject);
procedure ServiceBeforeInstall(Sender: TService);
private
{ Private declarations }
public
function GetServiceController: TServiceController; override;
{ Public declarations }
end;
var
sSetData: TsSetData;
LogFile:string;
function WriteLog(sInfo:string):Boolean;
implementation
//在网上查到的。试试、
procedure TForm1.ViewRemoteList(Dir:string);
var
DirList:TStringList;
i:Integer;
ListItem:TListItem;
Attribute:TIdDirItemType;
begin
DirList := TStringList.Create;
try
try
IdFTP1.ChangeDir(Dir);
IdFTP1.List(DirList);
EditDir.Text := IdFTP1.RetrieveCurrentDir;
except on E:Exception do
begin
WriteLog(E);
end;
end;
finally
DirList.Free;
end;
RemoteListView.Clear;
for i:=0 to IdFTP1.DirectoryListing.Count-1 do
begin
ListItem := RemoteListView.Items.Add();
ListItem.Caption := IdFTP1.DirectoryListing.Items[i].FileName ;
ListItem.SubItems.Add(IntToStr(IdFTP1.DirectoryListing.Items[i].Size));
ListItem.SubItems.Add(DateToStr(IdFTP1.DirectoryListing.Items[i].ModifiedDate));
Attribute := IdFTP1.DirectoryListing.Items[i].ItemType;
if Attribute=ditDirectory then
begin
ListItem.SubItems.Add( '目录 ');
ListItem.ImageIndex := 0;
end
else if Attribute=ditFile then
begin
ListItem.SubItems.Add( '文件 ');
ListItem.ImageIndex := 1;
end
else if Attribute=ditSymbolicLink then
begin
ListItem.SubItems.Add( '其他 ');
ListItem.ImageIndex := 2;
end; end;
end;
bOpened:Boolean=false; //日志文件是否打开
LogFile: TextFile; //日志文件
procedure WriteLog(const str: string);
var
strLog: string;
strFileName, strFilePath: string;
hLogFile: integer;
begin
try
if not bOpened then //如果文件还没有打开就先打开
begin
strFilePath := ExtractFilePath(ParamStr(0)) + 'log';
if not DirectoryExists(strFilePath) then MKDir(PChar(strFilePath));
strFileName := strFilePath + '\' + FormatDateTime('yyyy-mm-dd',Now()) + '.log';
//showmessage(strFileName);
if not FileExists(strFileName) then
begin
//如果文件不存在就先创建
hLogFile := FileCreate(strFileName);
if hLogFile > 0 then FileClose(hLogFile)
else Exit;
end;
AssignFile(logFile, strFileName);
Append(logFile);
bOpened := true;
end; strLog := FormatDateTime('yyyy-mm-dd hh:mm:ss',Now()) + '---->' + str;
Writeln(logFile, strLog);
flush(logFile);
except
end;
end;
在窗口的destory中关闭