ข้อยกเว้น:“ ไม่รองรับรูปแบบ URI”


89

ฉันมีเส้นทางท้องถิ่นแน่นอนที่ชี้ไปที่ผบ.: "file:\\C:\\Users\\john\\documents\\visual studio 2010\\Projects\\proj"

แต่เมื่อฉันพยายามที่จะโยนมันลงในDirectoryInfoctor ฉันได้รับข้อยกเว้น "ไม่รองรับรูปแบบ URI"

ฉัน googled และดู SO แต่ฉันเห็นโซลูชันที่มีเส้นทางระยะไกลเท่านั้นไม่ใช่วิธีแก้ปัญหาในพื้นที่ ฉันคาดหวังวิธีการแปลงบางประเภท ...

คำตอบ:


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

3
ดี! ฉันมีปัญหาเดียวกันนี้และ Googled อย่างบ้าคลั่งมันใช้งานได้ดี
Jeremy Morgan

แม้ว่าจะเป็นโซลูชันที่ใช้งานได้กับ ofc แต่ก็มีกรณีหนึ่งที่ล้มเหลว หากตำแหน่งนั้นมี # ดังนั้นโลคัลพา ธ จะไปจนถึงตำแหน่งนั้นเท่านั้น เช่นถ้าเส้นทางของคุณเป็นไฟล์: /// C: /foo/bar#/test.jpg คุณจะได้รับ C: / foo / bar แทนสิ่งที่คุณต้องการจริงๆ
DokutoMekki

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.