我正在做以下事情:
if (File.Exists(filePath))
{
string base64 = File.ReadAllText(filePath);
return new ImageContentDTO
{
ImageContentGuid = imageContentGuid,
Base64Data = base64
};
}
Run Code Online (Sandbox Code Playgroud)
这完全没问题.我想问的是,在我阅读完文件后,我是否需要关闭文件或类似内容.如果是这样,怎么样?
Tim*_*ter 10
使用时不需要关闭任何东西,File.ReadAllText因为底层流读取器是隐含关闭的.
打开文本文件,读取文件的所有行,然后关闭文件.
这是.NET 4(ILSpy)中的实现:
string result;
using (StreamReader streamReader = new StreamReader(path, encoding))
{
result = streamReader.ReadToEnd();
}
return result;
Run Code Online (Sandbox Code Playgroud)
该using语句处理StreamReader(即使出错),也关闭它.
我知道这个问题已经回答了,这已经差不多一年了,但是对于那些搜索和阅读这个问题的人,我建议你在完成这个问题时关闭一个文件,或者至少做一个像我的答案所做的调查.
我不是编程专家,但我最近遇到过这种情况.
我创建了一个WinForms c#程序,用于File.ReadAllText将文本复制到字符串.之后我试图直接从文件夹中删除文件,而不是通过程序,但是我收到一个错误,该文件仍在另一个程序中打开.然后我停止运行该程序,并能够删除该文件.
这是我在Visual Studio 2012 Ultimate中的经验.可能应该做一些不同的事情,但这就是它为我做的事情.
当我用StreamReader.ReadToEnd,然后StreamReader.Close在同一个文件,我没有问题,删除文件,运行程序时.