2014-07-14 5 views
1

해당 폴더의 모든 이미지를 로컬 호스트/원격 디렉터리 목록에서 가져 오려고했습니다.C# - 원격 디렉터리에서 파일 이름 가져 오기 (앵커 없음)

지금까지 다음 시도 (SO의 질문에 다른 사람에 따라,하지만 내 편곡에 ​​다음을 포함하는 비트를 '변경,하지만 여전히 WebRequest 클래스를 사용하여.) 무엇 :

Regex regex = new Regex(GetDirectoryListingRegexForUrl(url)); 
var arr = regex.Matches(photosName).Cast<Match>().Select(m => m.Value).ToArray(); 

public static string GetDirectoryListingRegexForUrl(string url) 
{ 
    if (url.Equals("http://localhost:MyPort/MyNewbieProject/images/")) 
    { 
     return "<a href=\".*\">(?<name>.*)</a>"; 
    } 
    throw new EverythingExplodedException(); 
} 

그래서에서 결과 난 그냥 "모든-귀하의-자료-00.jpg"를 얻고 싶었다, 그래서 나는 내 응용 프로그램에 그것을 다운로드 및 이미지의 채우기 위해 사용할 수

"<a href=\"All-Your-Base-00.jpg\"> All-Your-Base-00.jpg</a>" 

: 즉, 내가 좋아하는 뭔가를 얻을.

어떻게해야합니까? 수동으로이 문자열을 다듬을 지, 아니면 그렇게 할 수있는 더 좋은 방법이 있습니까?

+1

당신이 무엇인지 좀 더 설명이 필요 : 그런 다음 각 경기를 통해 가고 싶은

var arr = regex.Matches(photosName).Cast<Match>(); 

하려고하는 것. 내 생각 엔 사이트를 크롤링하고 디렉토리의 어떤 이미지가 현재 사용 중인지 알아 내려고합니다. –

+0

http://msdn.microsoft.com/en-us/library/07wt70x2(v=vs.110).aspx와 같은 것을 사용할 수 있습니다. Directory.GetFiles – Ani

+0

안녕하세요. @ JasonNesbitt, 아니요. 우리의 응용 프로그램에서 사용되는 모든 이미지를 얻고 있습니다. 이 폴더는 지속적으로 업데이트되므로이 이미지를 코드별로 추가합니다. Jim Mischel이 곧 답변을 드리려고 노력하고 있습니다. – user3838190

답변

2

반환 된 일치 항목에서 캡처 된 그룹을 가져오고 싶습니다. 즉 당신이이다 :

var arr = regex.Matches(photosName).Cast<Match>().Select(m => m.Value).ToArray(); 

첫째, 변경이에 :

foreach (Match m in arr) 
{ 
    var name = m.Groups["name"].Value; 
    // name now contains the captured group 
} 
+0

Hey Jim. 이렇게하면 'System.Text.RegularExpressions.Match'로 'string'형식을 변환 할 수 없습니다. – user3838190

+0

@ user3838190 : 내 편집을 참조하십시오. 문자열이 아닌'Match' 객체의 모음을 얻을 수 있도록 코드를 변경해야합니다. –

+0

나는 그것을 논평하고 편집을 제안하려고했다. +1 – Malavos

관련 문제