c#を使用してディレクトリブラウジングを有効にしたURLパスから「*.zip」を含むファイルを検索する方法。例:私のURLがhttp://www.example.com/myfolder/myfiles で、パスがファイルで構成されている場合:ex1.htm、ex2.zip、ex.pdf、ex.swfでは、どうすれば見つけることができますか拡張子が*.zipのファイル名。URLでzipファイルのファイル名を見つける方法を教えてください
質問する
3214 次
4 に答える
1
FTPサーバーも利用できない場合は、を使用してディレクトリリストをロードしHttpWebRequest
、結果を解析して<A>タグ内のすべてのhrefを引き出す必要があると思います。
サンプルコードは次のとおりです。
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値は、現在のディレクトリを基準にしていることに注意してください。
于 2012-07-06T06:53:26.380 に答える
0
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で機能します/エラー処理はあなたに任せます/
于 2012-07-06T05:47:15.190 に答える
0
マイケルによって提案されたように、私は次のように質問の解決策を得ました:
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);
}
}
}
}
于 2012-07-06T09:21:54.173 に答える
-1
GetFileName
ファイル名を取得するために使用できます。
例えば:
System.IO.Path.GetFileName(path);
また
ディレクトリからファイル名を取得するには、次の手順を試してください。
var filenames = String.Join(", ", Directory.GetFiles(@"c:\", "*.zip").Select(filename => Path.GetFileNameWithoutExtension(filename)).ToArray());
于 2012-07-06T05:36:18.747 に答える