C#File.ReadAllText返回" NotSupportedException"

时间:2016-06-06 10:14:25

标签: c# file filereader

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有完全相同的问题。有没有解决方法呢?

编译器注释:"附加信息:不支持给定路径的格式。"

3 个答案:

答案 0 :(得分:6)

如果您解码字符串

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路径名称)

答案 1 :(得分:2)

根据MSDNNotSupportedException表示:

  

路径格式无效。

您的路径中可能存在不可见的字符,或者您的实际代码中缺少您的逐字记录符(@),从而使\t成为制表符。

答案 2 :(得分:0)

在我的情况下,我遇到了相同的异常,但未将管理员权限设置为特定驱动器。我以管理员的身份打开了VSTS并运行了相同的程序,然后才能正常工作。