如何使用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