如何使用c#启用目录浏览功能从URL路径中查找带有“* .zip”的文件。 例如: 如果我的网址是:http://www.example.com/myfolder/myfiles 和路径包含文件:ex1.htm,ex2.zip,ex.pdf,ex.swf, 那么我如何才能找到具有扩展名* .zip的文件名。 请帮我看看如何在URL中找到压缩文件的文件名在给定的url路径中查找zip文件的文件名
回答
正如迈克尔建议我得到了问题的解决如下:
string urlpath = "http://www.example.com/folder/"
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlpath);
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
string html = reader.ReadToEnd();
Regex regEx = new Regex(@".*/(?<filename>.*?)\.zip");
MatchCollection matches = regEx.Matches(html);
if (matches.Count > 0)
{
foreach (Match match in matches)
{
if (match.Success)
{
Console.WriteLine(match.Groups["filename"].Value);
}
}
}
}
谢谢迈克尔,Despertar,Akhil&拉吉你的宝贵意见.. – 2012-07-06 09:24:10
你可以用GetFileName
来获取文件名。
例如:
System.IO.Path.GetFileName(path);
OR
你可以尝试以下从目录中获取文件名:
var filenames = String.Join(", ", Directory.GetFiles(@"c:\", "*.zip").Select(filename => Path.GetFileNameWithoutExtension(filename)).ToArray());
其实我的路径是一个文件夹路径(http://www.example.com/folderpath/),我需要该目录路径中存在的zip文件的文件名。如何获得zip文件的文件名? – 2012-07-06 05:40:33
所以你可以试试: var filenames = String.Join(“,”,Directory.GetFiles(@“c:\”,“* .zip”)。Select(filename => Path.GetFileNameWithoutExtension(filename))。 ToArray的()); – RAJ 2012-07-06 05:46:11
Directory.GetFiles()函数仅返回目录中的文件。但是,在这里我使用的URL路径中的文件不是目录..当我们使用URL路径(http://www.example.com/filderpath/)在Directory.GetFiles..it返回异常无效的URI格式.. – 2012-07-06 05:49:10
string[] s = Directory.GetFiles(path);
int i = 0;
while (i < s.Length)
{
if (s[i].Substring((s[i].IndexOf(".") + 1), 3).Equals("zip"))
{
Response.Write(s[i].ToString());
i = i + 1;
}
}
试试这个。
编辑
int slashIndex = url.lastIndexOf('/');
int dotIndex = url.lastIndexOf('.zip', slashIndex);
String filenameWithoutExtension;
if (dotIndex == -1)
{
filenameWithoutExtension = url.substring(slashIndex + 1);
}
else
{
filenameWithoutExtension = url.substring(slashIndex + 1, dotIndex);
}
这适用于在文件名附加在最后的URL/ 我将离开处理你的错误/
我们不能使用Directory.GetFiles,因为这里使用的是不是目录的url路径。我在使用Directory.GetFiles时遇到以下异常:URI格式不受支持。 – 2012-07-06 05:53:03
我不认为你可以访问网址内的文件。看看我编辑的答案 – akhil 2012-07-06 06:03:30
嗨Akhil ..我的url路径不包含zip文件。例如:如果我的网址是http://example.com/folder/那么这个文件夹路径中有很多文件...我不知道这个文件夹的文件名..我可以得到这个文件夹中的文件的文件名在收藏列表中? – 2012-07-06 06:08:15
除非一个FTP服务器也可以,我认为你将不得不求助于使用HttpWebRequest
加载目录列表,然后解析结果以提取出<A>标签中的所有hrefs。
下面是一些示例代码:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
string html = reader.ReadToEnd();
Console.WriteLine("Parsing {0}", html);
Regex regex = new Regex("href=\\\"([^\\\"]*)", RegexOptions.IgnoreCase);
MatchCollection matches = regex.Matches(html);
if (matches.Count > 0)
{
foreach (Match match in matches)
{
if (match.Success)
{
Console.WriteLine("Found {0}", match.Captures[0]);
}
}
}
}
}
注意,你得到的HREF值将是相对于当前目录。
- 1. 路径变量:查找特定文件的文件夹路径
- 2. 查找给定的文件路径在ios中是否有效?
- 3. 在给定路径找不到文件
- 4. 查找某些文件的扩展名,获取路径,文件复制到路径,在文本文件中
- 5. 使用glob.glob通过给定路径在多个文件夹中查找文件?
- 6. 得到给定一个路径和文件名路径名
- 7. 获取带查找文件的路径而不给出文件名
- 8. 查找文件路径
- 9. 查找文件路径
- 10. 查找文件路径
- 11. 存在给定路径的文件
- 12. Excel-VBA查找给定路径的pdf文件
- 13. 在drupal中查找文件路径
- 14. 路径中的文件名
- 15. 查找给定路径的根路径
- 16. 的URL文件路径
- 17. 查找并复制txt文件中的路径名中包含的文件
- 18. C++:如何在该文件的路径与给定的路径
- 19. 如何删除zip文件中的文件夹路径。我只想在zip文件中使用txt文件
- 20. 从完整文件路径查找文件名
- 21. 查找文件夹下(.BMP)文件的完整路径名,追加到文件
- 22. 如何在phpfox中使用url查找文件夹路径?
- 23. 给予在C#中的文件路径
- 24. 如何删除zip文件夹中的文件夹路径
- 25. 找到一个zip文件,打印路径和zip内容
- 26. 在插件中给出文件路径
- 27. 在iOS中查找我的文档文件夹的路径
- 28. 获取给定路径的文件ID
- 29. 查找文件自己的路径
- 30. 查找路径上的文件
这SO后可能会帮助你,它说明了如何解析URL的目录列表,HTTP://计算器。 com/questions/124492/c-sharp-httpwebrequest-command-to-get-directory-listing。分析是第一步,然后一旦你解析它,你可以过滤.zip文件 – Despertar 2012-07-06 06:19:07
Tinoy,通过“查找文件”,你是否意味着要下载它?如果下载是允许的,那么我有建议,我想。 – RAJ 2012-07-06 06:34:15
不,我只需要该文件夹中存在的zip文件的文件名。我认为我们可以使用正则表达式在URL的HTML文档中查找zip文件。 – 2012-07-06 06:41:35