Function isVirtualDirExist(sDir) As Boolean
On Error GoTo errh
Dim oVirtualDir 'Delete Virtual Directory
Set oVirtualDir = GetObject("IIS://LocalHost/w3svc/1/root/" + sDir)
isVirtualDirExist = True
Set oVirtualDir = Nothing
Exit Function
errh:
isVirtualDirExist = False
Set oVirtualDir = Nothing
End Function
On Error GoTo errh
Dim oVirtualDir 'Delete Virtual Directory
Set oVirtualDir = GetObject("IIS://LocalHost/w3svc/1/root/" + sDir)
isVirtualDirExist = True
Set oVirtualDir = Nothing
Exit Function
errh:
isVirtualDirExist = False
Set oVirtualDir = Nothing
End Function
var
oVirtualDir: Variant;
begin
Result := True;
try
//Delete Virtual Directory
oVirtualDir := GetActiveOleObject('IIS://LocalHost/w3svc/1/root/' + strVirtualDir);///这一句报错:“无效的类别字符串”
oVirtualDir := Unassigned;
except
Result := False;
oVirtualDir := Unassigned;
end;
end;
GetActiveOleObject('');
CreateOleObject('');
即使参数是空串都可以正常编译的。
但调用时就会报错了。
ComObj, Variants;
//一、判断一个虚拟目录是否存在:
function IsVirtualDirExist(strVirtualDir: string): Boolean;
//二、新建一个虚拟目录:
function CreateVirtualDir(strVirtualDir, strRealPath: string): Boolean;
//三、删除一个虚拟目录:
function DeleteVirtualDir(strVirtualDir: string): Boolean;implementation//一、判断一个虚拟目录是否存在:
function IsVirtualDirExist(strVirtualDir: string): Boolean;
var
WebSite, WebServer, WebRoot, VDir: Variant;
begin
Result := True;
try
try
WebSite := CreateOleObject('IISNamespace');
WebSite := WebSite.GetObject('IIsWebService', 'localhost/w3svc');
WebServer := WebSite.GetObject('IIsWebServer', '1');
WebRoot := WebServer.GetObject('IIsWebVirtualDir', 'Root');
VDir := WebRoot.GetObject('IIsWebVirtualDir', strVirtualDir);
except
Result := False;
end;
finally
WebSite := Unassigned;
WebServer := Unassigned;
WebRoot := Unassigned;
VDir := Unassigned;
end;
end;//二、新建一个虚拟目录:
function CreateVirtualDir(strVirtualDir, strRealPath: string): Boolean;
var
WebSite, WebServer, WebRoot, VDir: Variant;
begin
Result := True;
try
try
WebSite := CreateOleObject('IISNamespace');
WebSite := WebSite.GetObject('IIsWebService', 'localhost/w3svc');
WebServer := WebSite.GetObject('IIsWebServer', '1');
WebRoot := WebServer.GetObject('IIsWebVirtualDir', 'Root');
VDir := WebRoot.Create('IIsWebVirtualDir', strVirtualDir);
VDir.AccessRead := True;
VDir.AccessWrite := True;
VDir.AccessScript := True; //允许访问脚本
VDir.Path := strRealPath;
VDir.SetInfo;
except
Result := False;
end;
finally
WebSite := Unassigned;
WebServer := Unassigned;
WebRoot := Unassigned;
VDir := Unassigned;
end;
end;//三、删除一个虚拟目录:
function DeleteVirtualDir(strVirtualDir: string): Boolean;
var
WebSite, WebServer, WebRoot: Variant;
begin
Result := True;
try
try
WebSite := CreateOleObject('IISNamespace');
WebSite := WebSite.GetObject('IIsWebService', 'localhost/w3svc');
WebServer := WebSite.GetObject('IIsWebServer', '1');
WebRoot := WebServer.GetObject('IIsWebVirtualDir', 'Root');
WebRoot.delete('IIsWebVirtualDir', strVirtualDir);
except
Result := False;
end;
finally
WebSite := Unassigned;
WebServer := Unassigned;
WebRoot := Unassigned;
end;
end;end.