在 C++/cli 中使用 System::IO::File::ReadAllLines()
Posted
技术标签:
【中文标题】在 C++/cli 中使用 System::IO::File::ReadAllLines()【英文标题】:Using System::IO::File::ReadAllLines() in C++/cli 【发布时间】:2013-06-11 17:57:38 【问题描述】:我正在尝试在我的 C++ 项目中使用 C# 方法 System::IO::File::ReadAllLines()
,但每次我尝试将 System::String^
传入方法时,它都会在方法下划线并说:
“cli::array<:string>”类型的值不能用于初始化“System::String^”类型的实体
这是什么意思?我的代码:
#define IO System::IO
int main()
System::String ^ path = gcnew System::String("C:\\text.txt");
System::String ^ lines = IO::File::ReadAllLines(path);
return 0;
C++ 中也有替代函数吗?
我已设置要使用的项目 /clr。
如果您需要更多信息,请告诉我,我会提供。
【问题讨论】:
顺便说一句,ReadAllLines()
不是“C# 方法”,它是一个 .Net 方法,但没有任何特定于 C# 的内容。
使用 File::ReadAllText() 如果您实际上只是想获取包含所有文件内容的单个字符串。 ReadAllLines() 返回一个数组,就像编译器错误消息所说的那样。
【参考方案1】:
您误解了您收到的错误。 ReadAllLines
返回一个字符串数组,而不是包含整个文件内容的字符串。 ReadAllText
返回一个包含整个文件内容的字符串。
// if you would like an array of strings
array<String^>^ lines = File::ReadAllLines(path);
// or
// if you would like a single string with the file contents
String^ lines = File::ReadAllText(path);
【讨论】:
以上是关于在 C++/cli 中使用 System::IO::File::ReadAllLines()的主要内容,如果未能解决你的问题,请参考以下文章
在 c# 中使用 System.IO.Packaging 对 .xlsx 文件进行数字签名
使用 vb.net 和 System.IO.Compression (.Net 4.5) 压缩文件
使用 System.IO.File.Move 时自动创建文件夹
System.IO.DirectoryNotFoundException 找不到路径“C:\home\site\Temp\filename.msi”的一部分