例如:我把webservice放在"e:\aa"下面,然后通过IIS建立虚拟目录来发布。在aa这个文件夹下面有一个update.ini文件,所以update.ini文件在服务器的绝对路径就是"e:\aa\update.ini",如果在一般的应用程序下就可以通过:ExtractFilePath(Application.ExeName)+'update.ini'获得,但是在IIS里这样写获得的是'c:\WINNT\system32\update.ini'。
我的问题是如何获得update.ini文件在服务器的绝对路径,即"e:\aa\update.ini",并且在win2000,和win2003下有何区别。
我的问题是如何获得update.ini文件在服务器的绝对路径,即"e:\aa\update.ini",并且在win2000,和win2003下有何区别。
function GetDllPath(const DllFileName: string): string;
var
ModuleList: Cardinal;
pm: TModuleEntry32;
sTemp: string;
begin
//Result := 'Test';
ModuleList := CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, GetCurrentProcessId);
pm.dwSize := SizeOf(TModuleEntry32);
if Module32First(ModuleList, pm) then
begin
repeat
if Pos(LowerCase(DllFileName), LowerCase(pm.szExePath)) > 0 then
begin
sTemp := pm.szExePath;
Result := Copy(sTemp, 1, Length(sTemp) - Length(DllFileName));
break;
end;
until not Module32Next(ModuleList, pm);
end;
CloseHandle(ModuleList);
end;看lz能不能参考下。