环境:
client: C# winform
server: IIS website, 没有建立任何方法,客户端通过IIS自带script或功能 完成业务功能。
目前状况: 通过IIS的虚拟目录的根目录可以实现上传,下载,删除,创建等功能。
问题: 若在虚拟目录下面建立n(n>1)级目录,如何判断某级目录是否存在?或查找指定目录?
条件: 不能用try,catch来判断是否存在.请各位高手指点,感激...!!!
client: C# winform
server: IIS website, 没有建立任何方法,客户端通过IIS自带script或功能 完成业务功能。
目前状况: 通过IIS的虚拟目录的根目录可以实现上传,下载,删除,创建等功能。
问题: 若在虚拟目录下面建立n(n>1)级目录,如何判断某级目录是否存在?或查找指定目录?
条件: 不能用try,catch来判断是否存在.请各位高手指点,感激...!!!
尝试过的方法:
在IIS上映射发布以后,肯定可以通过url在browser上访问,某级目录若存在,一定能访问到.
于是就用
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri)
req.Method = "get";
req.GetResponse();
类似的方法尝试,可以成功,但是,要用try,catch来捕捉处理,不能满足要求。
新的问题:
访问某个url,判断它是否存在?
最好是有什么isExists的方法.请指教...!!!期待...
到IIS里面遍历或find.(是看到飞刀大侠的iis管理后想到的,可能理解错误。)
于是
DirectoryEntry dEntrys = new DirectoryEntry("IIS://localhost/W3SVC/1/Root/test");
foreach (DirectoryEntry childrens in dEntrys.Children)
新的问题出现
1. dEntrys.Children.Find(...)时,找不到文件夹,只能找到文件.
2. dEntrys.Children.SchemaFilter.Count等方法存在,但是不能访问,抛异常
3. 遍历出来的文件和映射目录下的文件,或IIS上看到的文件不同,还是是我对此方法理解错误,
难道这个方法是找映射列表,或什么其它的文件。
4. dEntrys.Children.Find(...)找的是什么具体路径?比如Inetpub下面的某个文件?请指点?谢先!!!
sc.ServiceName = "DefaultAppPool";
if ((sc.Status.Equals(System.ServiceProcess.ServiceControllerStatus.Stopped)) || (sc.Status.Equals(System.ServiceProcess.ServiceControllerStatus.StopPending)))
{
try
{
sc.Start();
sc.WaitForStatus(System.ServiceProcess.ServiceControllerStatus.Running);
}
catch (InvalidOperationException)
{
Console.WriteLine("Could not start the Alerter service.");
}
}
如上
会报这样的错
“无法打开计算机”.”上的DefaultAppPool服务”
这是怎么回事呀?
MSDN也是这么写的呀?
若通过url找IP,在url没有的情况下也会出错,希望能找到更好的方法。谢谢
描述稍微清楚些,肯不明白.
if(File.Exists(@"c:\tempuploads\NewDirectory")) //判断目录是否存在
{
GetDirectory(); //获取子目录
GetFile(); //获取文件
MoveDirectory(); //移动目录
DeleteDirectory(); //删除目录
}
else
{
MakeDirectory(); //生成目录
SetDirectory(); //设置目录属性
}下面的代码判断是否存在c:\tempuploads\newFile.txt文件。若存在,先复制该文件,然后其删除,最后将复制的文件移动;若不存在,则先创建该文件,然后打开该文件并进行写入操作,最后将文件属性设为只读、隐藏。
if(File.Exists(@"c:\tempuploads\newFile.txt")) //判断文件是否存在
{
CopyFile(); //复制文件
DeleteFile(); //删除文件
MoveFile(); //移动文件
}
else
{
MakeFile(); //生成文件
OpenFile(); //打开文件
SetFile(); //设置文件属性
}
这是本地操作,但是远程操作呢?
File不能支持的.
谢谢关注
请参见 字段 方法
全部折叠 全部展开 成员选项:全部显示 成员选项:已筛选
包括继承的成员
包括受保护的成员
仅 .NET Compact Framework 成员 对包含文件或目录路径信息的 String 实例执行操作。这些操作是以跨平台的方式执行的。msdn上有写. System.IO.Path 类
if(File.Exists(@"c:\tempuploads\newFile.txt")) //判断文件是否存在
这2个方法不能实现
if(File.Exists(@"http://"))
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URI);
request.Method = WebRequestMethods.Http.Head;
request.GetResponse();
catch (WebException ex)
{
if (ex.Message == 404)
{
do;
}
else
throw ex;
}
}
可能只能这样吧!有了结果告诉大家哦,爱好者的期待。
祝你早点成功哈!