예외 :“URI 형식은 지원되지 않습니다.”


89

dir을 가리키는 절대 로컬 경로가 있습니다. "file:\\C:\\Users\\john\\documents\\visual studio 2010\\Projects\\proj"

그러나 내가 그것을 DirectoryInfo의 ctor 에 던지 려고하면 "URI 형식이 지원되지 않습니다"예외가 발생합니다.

나는 검색하고 그렇게 보았지만 로컬 경로가 아닌 원격 경로가있는 솔루션 만 봅니다. 나는 일종의 변환 방법을 기대합니다 ...

답변:


189
string uriPath =
    "file:\\C:\\Users\\john\\documents\\visual studio 2010\\Projects\\proj";
string localPath = new Uri(uriPath).LocalPath;

3
좋은! 나는 똑같은 문제가 있었고 미친 듯이 Google을 사용했습니다.
Jeremy Morgan

작동하는 솔루션이지만 실패한 경우는 한 가지뿐입니다. 위치에 #이 포함 된 경우 로컬 경로는 해당 위치까지만 이동합니다. 예를 들어 경로가 file : /// C : /foo/bar#/test.jpg이면 실제로 원하는 대신 C : / foo / bar가 표시됩니다.
DokutoMekki 2015 년

2
안녕하세요. 파일이 www.xxx.com/sitemap.xml에 있기를 원합니다. 이것은 localhost에서 작동하지만 서버에는 그러한 디렉토리가 없습니다. 이 경우 어떻게 정렬 할 수 있습니까?
그것은 함정

@ It'satrap 아마도 Server.MapPath를 찾고 계실 것 입니다.
Andrew Morton

하지만 경로를 사용한 후 내부에 더 많은 폴더를 만들고 디렉토리를 만들지 않습니다. 보세요 stackoverflow.com/questions/63493899/…
hud

1

이 시도

ImagePath = "http://localhost/profilepics/abc.png";
   HttpWebRequest request = (HttpWebRequest)WebRequest.Create(ImagePath);
          HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream receiveStream = response.GetResponseStream();


0
     string ImagePath = "";

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(ImagePath);
        string a = "";
        try
        {
            HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
            Stream receiveStream = response.GetResponseStream();
            if (receiveStream.CanRead)
            { a = "OK"; }
        }

        catch { }

1
이 코드가 문제를 해결할 수 있지만 문제를 해결하는 방법과 이유에 대한 설명포함 하여 게시물의 품질을 향상시키는 데 실제로 도움이되며 더 많은 찬성 투표가 발생할 수 있습니다. 지금 질문하는 사람뿐만 아니라 미래에 독자를 위해 질문에 답하고 있다는 것을 기억하십시오. 제발 편집 설명을 추가하고 제한 및 가정이 적용 무엇의 표시를 제공하는 답변을.
Artog
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.