project FTPDemo.exe raised exception class EFCreateError with message 'Cannot create file'
Process stopped. Use Step or Run to continue.
컴파일하면 *75>을 가리키면서 위와 같은 메시지가 나타납니다.
겨우 컴파일 하고 프로그램을 실행하면
문제는 프로그램을 맨처음에 실행하면 'Cannot create file'
와 같은 에러메시지창이 뜨는데 이것을 어떻게 하면 되지요?
=====================================================================
unit IdLogDebug;
interface
uses
Classes,
IdLogBase,
IdSocketHandle;
type
TIdLogDebugTarget = (ltFile, ltDebugOutput, ltEvent);
TLogItemEvent = procedure(ASender: TComponent; var AText: string) of object;
TIdLogDebug = class(TIdLogBase)
protected
FFilename: string;
FFileStream: TFileStream;
FOnLogItem: TLogItemEvent;
FTarget: TIdLogDebugTarget;
//
procedure Log(AText: string); override;
procedure SetActive(const AValue: Boolean); override;
procedure SetTarget(const AValue: TIdLogDebugTarget);
public
destructor Destroy; override;
published
property Filename: string read FFilename write FFilename;
property OnLogItem: TLogItemEvent read FOnLogItem write FOnLogItem;
property Target: TIdLogDebugTarget read FTarget write SetTarget;
end;
implementation
uses
IdGlobal,
IdResourceStrings,
SysUtils;
{ TIdLogDebug }
destructor TIdLogDebug.Destroy;
begin
Active := False;
inherited;
end;
procedure TIdLogDebug.Log(AText: string);
var
s: string;
begin
if assigned(OnLogItem) then begin
OnLogItem(Self, AText);
end;
case Target of
ltFile: begin
FFileStream.WriteBuffer(PChar(AText)^, Length(AText));
s := EOL;
FFileStream.WriteBuffer(PChar(s)^, Length(s));
end;
ltDebugOutput: begin
DebugOutput(AText + EOL);
end;
end;
end;
procedure TIdLogDebug.SetActive(const AValue: Boolean);
begin
if AValue then begin
case Target of
ltFile:
if not (csLoading in ComponentState) then begin
if FileExists(Filename) then begin
FFileStream := TFileStream.Create(Filename, fmOpenReadWrite);
end else begin
*75> FFileStream := TFileStream.Create(Filename, fmCreate);
end;
FFileStream.Position := FFileStream.Size;
end;
end;
end else begin
case Target of
ltFile: begin
FreeAndNil(FFileStream);
end;
end;
end;
inherited;
end;
procedure TIdLogDebug.SetTarget(const AValue: TIdLogDebugTarget);
begin
if ([csLoading, csDesigning] * ComponentState = []) and Active then
begin
raise Exception.Create(RSCannotChangeDebugTargetAtWhileActive);
end;
FTarget := AValue;
end;
end.
원인은)
FTPDemo.exe라는 파일이 실행이 되고 있는데, 같은 위치에 같은 파일을 만들려고 해서 생기는 오류입니다.
F9해서 프로그램에 에러가 생겨서 델파이로 돌아오고, 다시 컴파일하고...
뭐 이런 작업을 반복하다 보면 발생합니다.
작업표시줄이나, 어디를 뒤져 보아도 파일이 실행되고 있지않다....쩝
이렇게 생각하실 수 있는데... 아닙니다.
어딘가에서 실행되고 있습니다.
작업관리자등을 실행시켜서 process를 함 보세요.
해결방법)
1. 델파이를 종료했다가 다시 들어온다.
2. 프로젝트 옵션 어딘가에 보면 실행파일을 생성할 폴더의 경로를 지정하는 곳이 있습니다. 다른 곳으로 지정하세요.
3. 논리에러없이 잘 만드세요... --;
도움이 되었길 바라며......
그럼, 20000
-가슴벅찬 그날이 올때까지......-
-