קריאת קובץ טקסט מביאה לשגיאת 'System.NotSupportedException' - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

קריאת קובץ טקסט מביאה לשגיאת 'System.NotSupportedException'


falukky

Recommended Posts

אני מנסה לקרוא קובץ טקסט:

 

static void Main(string[] args)
{
    int counter = 0;
    string line;
    string links = @"‪D:\links.txt";

    // Read the file and display it line by line.
    System.IO.StreamReader file = new System.IO.StreamReader(links);
    while ((line = file.ReadLine()) != null)
    {
        Console.WriteLine(line);
        counter++;
    }

    file.Close();

    // Suspend the screen.
    Console.ReadLine();
}

ומקבל את השגיאה הבאה:

An unhandled exception of type 'System.NotSupportedException' occurred in mscorlib.dll

Additional information: The given path's format is not supported.

 

מצאתי דיון דומה עם פתרון פה: http://stackoverflow.com/questions/24856821/what-is-causing-notsupportedexception-the-given-paths-format-is-not-supported

אבל אני לא מבין את הפתרון ומה עלי לעשות עלמנת לפתור את זהת אשמח לעזרה

קישור לתוכן
שתף באתרים אחרים

השגיאה אומרת שהנתיב של הקובץ שלך לא חוקי.

בלינק שהבאת הם אומרים שהשגיאה מתרחשת כשסימן הנקודותים לא נמצא במיקום השני בסטרינג.

במקרה שלו הוא עשה COPY-PASTE לנתיב ולמרות שהסטרינג נראה תקין יש לו תווים ניסתרים והוא אכן לא נמצא במקום השני בסטרינג.

תמצא את המיקום של הנקודותיים בסטרינג שלך ( IndexOf ) , אם לא חוזר 1 אז זאת הבעיה.

אם עשית COPY-PASTE לנתיב אז יכול להיות שיש לך בעיה דומה.

קישור לתוכן
שתף באתרים אחרים

תשנה מ

    string links = @"‪D:\links.txt";

ל

    string links = "‪D:\\links.txt";

 

בלי לראות יותר מדי אני רואה שבשגיאה הוא מציין לך הפורמט לא תקין והוספת את ה @ בכדי שוינדוס ידע שתה פונה לכונן D גם בלי להוסיף שני SLAHS משום מה הוא לא מזהה את הפורמט (יכול להיות כמה סיבות לזה)

קישור לתוכן
שתף באתרים אחרים

@eli_vb

שתי המחרוזות שציינת הן אותו דבר בדיוק. כשיש @ בתחילת המחרוזת אז הקומפיילר לא עושה escaping, ולכן צריך רק סלאש אחד (וזה לא קשור למערכת ההפעלה, הקומפיילר עושה את זה).

 

@falukky

כמו ש-lompy אמר, יתכן שהעתקת את השורה הזו ממקום אחר ולכן היא מכילה תווים לא חוקיים? אם כן, תנסה פשוט למחוק אותו ולכתוב אותה מחדש בצורה ידנית.

קישור לתוכן
שתף באתרים אחרים

ציטוט של שניצל

@eli_vb

שתי המחרוזות שציינת הן אותו דבר בדיוק. כשיש @ בתחילת המחרוזת אז הקומפיילר לא עושה escaping, ולכן צריך רק סלאש אחד (וזה לא קשור למערכת ההפעלה, הקומפיילר עושה את זה).

 

@falukky

כמו ש-lompy אמר, יתכן שהעתקת את השורה הזו ממקום אחר ולכן היא מכילה תווים לא חוקיים? אם כן, תנסה פשוט למחוק אותו ולכתוב אותה מחדש בצורה ידנית.

צודק לא התעמקתי יותר מדי פשוט ראיתי בעיה ב PATH FORMAT אמרתי שינסה את זה וכן זה הקומפילר ולא המערכת הפעלה (ואגב ב .NET זה ה CLR מה שאומר שעדיין בקובץ המקופל יהיה רשום עם @ תוכל לראות את זה ע"י disassembly, לא בטוח אבל נראה לי)והיות והשגיאה היא נתיב קובץ לא חוקי אמרתי שינסה את זה. ונכון במידה והוא עשה COPY PASTE בהחלט יכול להיות שיש תווים נסתרים

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...