我有一个参数为什么这个比较失败
å文件下面的函数=完整的文件名
aFolder =一个文件夹名,以移动复制/到
aGuid =的GUID,它的文件分配
aAction =做什么用的FIL(移动或复制)
我猜想行如果TRIM(NEWFILE)= TRIM(å文件),然后退出寿如果旧文件与新文件相同,则会阻止代码执行任何操作。但事实并非如此。即使文件相同,也执行FileExists(NewFile)行。
在我的调试日志,我有
30-05-2013 08:10:34:840#新的文件:C:_Delphi_Compiled \ HomeSuite \调试\ indbo \ computerfladskaerm \ 968ED02C,21B5-4582-8A49- 8463E01ADCB3.pdf
30-05-2013 08:10:34:841#旧文件:C:_Delphi_Compiled \ HomeSuite \调试\ Indbo \ computerfladskaerm \ 968ED02C-21B5-4582-8A49-8463E01ADCB3.pdf
并且据我所知这些名字是一样的
function DocumentHandle(aFile, aFolder, aGuid: string; aAction: TDocumentAction): string;
const
CopyMsg = 'Der findes allerede en fil med det navn!' + sLineBreak +
'Filen omdøbes derfor til et unikt navn';
var
NewFile: string;
begin
Result := aFile;
try
NewFile := ExtractFileName(aFile);
NewFile := aFolder + NewFile;
if Trim(NewFile) = Trim(aFile) then
Exit;
if FileExists(NewFile) then
begin
NewFile := ExtractFileExt(aFile);
NewFile := aFolder + CleanGuid(aGuid) + NewFile;
MessageDlg(CopyMsg, mtWarning, [mbOk], 0);
end;
case aAction of
daCopy:
begin
if CopyFile(PwideChar(aFile), PwideChar(NewFile), False) then
Result := NewFile;
end;
daMove:
begin
if MoveFile(PwideChar(aFile), PwideChar(NewFile)) then
Result := NewFile;
end;
end;
except
on E: exception do
Logfile.Error('U_Documents.DocumentHandle: ' + E.Message);
end;
end;
你也可以使用'AnsiSameText(修剪(aFile),修剪(NewFile))' –
如果你能听到或者看看我现在你会看到一个非常尴尬的男人:-) – OZ8HP
+1斑点 –