簡體   English   中英

C#File.ReadAllText返回“NotSupportedException”

[英]C# File.ReadAllText returning “NotSupportedException”

File.ReadAllText似乎存在問題,因為即使目標文件存在,它也會返回“NotSupportedException”。 無論放入什么參數,它都會不斷拋出相同的異常。

using System;
using System.IO;

namespace MyNameSpace
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(File.ReadAllText(@"‪C:\Test.txt"));
            Console.ReadKey();
        }
    }
}

是的... Text.txt確實存在於此目錄中。 StreamReader有完全相同的問題。 這有什么解決方法嗎?

編譯器注釋:“附加信息:不支持給定路徑的格式。”

如果你解碼字符串

String report = String.Join(" ", @"‪C:\Test.txt".Select(c => ((int) c).ToString("x4")));

Console.Write(report);

你會得到

202a 0043 003a 005c 0054 0065 0073 0074 002e 0074 0078 0074

如您所見,路徑以奇怪的U202a字符開頭,該字符是雙向文本控制字符

https://en.wikipedia.org/wiki/Unicode_control_characters

因此不能用作路徑名的一部分,因此您得到NotSupportedException (文件系統在路徑名中不支持U202a

根據MSDNNotSupportedException指示:

path的格式無效。

可能在您的路徑中有一個不可見的字符,或者您的實際代碼中缺少您的逐字運算符( @ ),使得\\t成為制表符。

在我的情況下,我遇到了相同的異常,但管理員權限未設置為特定驅動器。 我以管理員身份打開VSTS並運行相同的程序然后它正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM