메뉴 건너뛰기

넷서버 사용 팁/강좌

넷서버의 서버상에서 클라이언트가 원하는 파일스트림을 제공할때 해당 파일이 닫히는 시점을 감지하여 원하는 작업을 처리하고자 하는 경우가 있습니다. 예를 들어 일단 임시파일로 업로드를 한 다음 업로드가 끝나면 해당 파일의 이름을 변경하거나 파일의 다운로드가 끝나고 파일이 닫히면 해당 파일이 삭제되도록 하는 경우등입니다.

하지만 넷서버의 OnGetFileService이벤트에서는 파일스트림의 할당만 할 수 있으므로 이 작업이 곤란한데 이때는 Class의 Destroy이벤트를 사용하여 감지가 가능합니다.


파일이 닫히면 해당 파일을 삭제하는 클래스

  TXFileStream = class(TFileStream)
  private
    FFileName: string;
  public
    constructor Create(const AFileName: string; Mode: Word);
    destructor Destroy; override;

    property Filename: string read FFileName;

  end;

....

constructor TXFileStream.Create(const AFileName: string; Mode: Word);
begin
  FFilename := FileName;
  inherited;

end;



destructor TXFileStream.Destroy;
begin
  inherited;
  //다른 원하는 작업을 추가할 수 있습니다.
  DeleteFile(FFileName);
end;

위로