我想在程序集中嵌入一个文本文件,这样我就可以加载文本而无需从磁盘中读取它,因此我需要的所有东西都包含在exe中.(这样它更便携)
有没有办法做到这一点?我假设资源文件的东西?
如果可以的话,你是如何做到的,以及如何将文本加载到字符串中?
如果我使用Path.GetTempPath()创建一些文件 - 它会在某个阶段自动删除,还是由我来删除它?
我有一个方法,它接受一个字符串参数,该参数是文本文件的文件路径.我希望能够传入一个我作为资源嵌入到我的程序集中的文本文件.
有没有办法获得嵌入文本文件的字符串引用,以便它可以作为打开StreamReader的文件路径?
谢谢.
我需要在我的项目中写一个大文件.
我学到的是:
我不应该将大文件直接写入目标路径,因为这可能会留下一个不完整的文件,以防应用程序在写入时崩溃.
相反,我应该写一个临时文件并移动(重命名)它.(称为原子文件操作)
我的代码片段:
[NotNull]
public static async Task WriteAllTextAsync([NotNull] string path, [NotNull] string content)
{
string temporaryFilePath = null;
try {
temporaryFilePath = Path.GetTempFileName();
using (var stream = new StreamWriter(temporaryFilePath, true)) {
await stream.WriteAsync(content).ConfigureAwait(false);
}
File.Delete(path);
File.Move(temporaryFilePath, path);
}
finally {
if (temporaryFilePath != null) File.Delete(temporaryFilePath);
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题:
如果应用程序在File.Delete和之间崩溃,则文件将丢失File.Move.我可以避免这个吗?
编写大文件还有其他最佳实践吗?
我的代码有什么建议吗?