当前上下文中不存在名称'File'。

11

我是一名C#编程的初学者。我遇到了错误The name 'File' does not exist in the current context

问题可能出现在这一行中:var v = File.ReadLines("dictionary.txt");

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication7
{
    class Program
    {
        static void Main(string[] args)
        {
            if (args.Length > 0)
            {
                var v = File.ReadLines("dictionary.txt");

5
请不要点踩。他是初学者。Dovydas,如果你在智能感知中查看提示,你会得到你问题的答案。这个提示与错误相关,告诉你可能缺少一个头文件包含。它甚至可能会告诉你应该包含什么内容。 - Rafa
1
只需添加 System.IO... - too_cool
7个回答

19

只需在文件顶部添加此使用语句

using System.IO;
编译器只能识别当前上下文中存在的命名空间中的类。您可以使用“using”语句将命名空间添加到上下文中。也可以使用完全限定的类型名称,例如“System.IO.File”来引用类。 如果您使用Visual Studio,还可以将光标放在有问题的符号(“File”)上,然后按Shift + Alt + F10。

谢谢,感谢您的帮助! - Dovydas
我也遇到了同样的问题,添加了using语句但没有成功。我需要添加任何NuGet包来使用System.IO;吗? - Sreejith Sree
不应该需要这样做。但是你需要一个包含该类的程序集的引用。它通常会自动添加。创建一个新项目并查看它所引用的内容。 - vidstige

4

对于使用Visual Studio 2015的用户,即使引用了System.IO,仍然会出现这个错误。问题在于默认情况下,Visual Studio 2015项目将同时针对dnx451和dnxcore50框架进行目标设置,而System.IO程序集似乎不可用于dnxcore50。

如果您查看project.json文件,您会看到一个“frameworks”部分。快速解决方法是注释掉“dnxcore50”条目,以便只针对dnx451进行目标设置:

"dnxcore50": {
    "dependencies": {
        "System.Console": "4.0.0-beta-22816",
        "System.Collections": "4.0.10-beta-22816",
        "System.Linq": "4.0.0-beta-22816",
        "System.Threading": "4.0.10-beta-22816",
        "Microsoft.CSharp": "4.0.0-beta-22816"
    }
}

2

在您的using部分添加using System.IO;

File类位于System.IO命名空间中。

或者(如果这是您代码中使用System.IO类型的唯一位置),您可以使用完全限定名称File

var v = System.IO.File.ReadLines("dictionary.txt");

但是在你的代码中需要多次访问某个命名空间中的对象时,最好将该命名空间包含在 usings 中。


1
添加一个using语句:
using System.IO

1
你需要包含 System.IO,在其他 using 语句旁边添加 using System.IO

你好,需要添加任何NuGet包才能获取using System.IO;吗?我这里也遇到了同样的问题。 - Sreejith Sree

0

我正在使用vs2017中的.Net Core,遇到了类似的问题。

为了解决这个问题,您应该更改目标框架并安装System.IO.FileSystem。

使用以下方法:

  • 右键单击项目,选择属性。
  • 在应用程序选项卡和目标框架部分更改为.NetStandard1.6

然后,在包管理器控制台中运行以下命令以安装System.IO.FileSystem

Install-Package System.IO.FileSystem -Version 4.3.0

0

1. 首先我们需要像这样创建对象。

 OpenFileDialog ofd = new OpenFileDialog();

2. 然后您需要将此代码添加到您的顶部

 using System.IO;

3. 最后,您可以将代码更改为以下内容

OpenFileDialog.Title -----> ofd.Title
OpenFileDialog.Filter -----> ofd.Filter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接