英文:
In C# Cake How to Read a Text File into List<string>?
问题
在Cake构建系统中,如何将一个以回车分隔的文本文件(比如文件夹名称)读取到List<String>中呢?
当我尝试使用File类时,它抱怨File(string)是一个方法,不适用于给定的上下文:
filePath filePath;
string fileContents = File.ReadAllText(filePath FullPath);
我该如何编写代码,使其在Cake中正常工作?
英文:
Given a carriage return delimited text file say of folder names, how do I read this file into List<String> in the Cake build system for C#?
When I try to use the File class, it complains that File(string) is a method, which is not valid given the context:
filePath filePath;
string fileContents = File.ReadAllText(filePath FullPath);
How would I write this so it works with Cake?
答案1
得分: 3
Cake有自己的File
类,因此存在一个命名空间冲突,编译器不知道你要使用哪个File
类。
你必须在调用中完全限定类型名称,包括System.IO
命名空间:
string fileContents = System.IO.File.ReadAllText(filePath FullPath);
你还可能对Cake.FileHelpers插件感兴趣,该插件为Cake添加了一组别名,以帮助进行简单的文件操作,如读取、写入和替换文本。
英文:
Cake has its own File
class, so there's a namespace conflict where the compiler doesn't know which File
class you want to use.
You have to fully-qualify the type name in your call, to include the System.IO
namespace:
filePath filePath;
string fileContents = System.IO.File.ReadAllText(filePath FullPath);
You might also be interested in the Cake.FileHelpers addin which adds a set of aliases for Cake to help with simple file operations such as Reading, Writing and Replacing text.
答案2
得分: 1
你可以使用 File.ReadAllLines()
或 File.ReadLines()
。
这两者都不返回 List<string>
,但都创建与 foreach
循环和 Linq 扩展兼容的对象,包括 .ToList()
(如果需要的话)。
我还看到这个:
> 当我尝试使用 File 类时,它抱怨 File(string) 是一个方法,不在给定的上下文中有效:
这里有两种可能性。一种是,除了 System.IO.File
,你可能在相同的作用域中还有另一个 File
类型或 File
方法。如果这是问题,那么请删除代码文件顶部可能有的任何 using System.IO
指令,并完全限定任何对 System.IO.File
的使用。
第二种可能性与代码片段有关,在两行上重复出现的 filePath filePath
或 filePath fullPath
都不太有意义,并表明可能缺乏基本语法的理解。
英文:
You want File.ReadAllLines()
or File.ReadLines()
.
Neither of these returns a List<string>
, but both create objects that work with foreach
loops and Linq extensions, including .ToList()
if you need it.
I also see this:
> When I try to use the File class, it complains that File(string) is a method, which is not valid given the context:
There are two possibilities here. One is, in addition to System.IO.File
, you either have another File
type or a File
method in the same scope. If this is the issue, then remove any using System.IO
directive you may have at the top of the code file and fully-qualify any use of System.IO.File
.
The second possibility relates to the code snippet, with the repeating filePath filePath
or filePath fullPath
on both lines. Neither really makes sense at all, and indicates there might be a lack of understanding for basic syntax.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论