相关疑难解决方法(0)

如何在.NET程序集中嵌入文本文件?

我想在程序集中嵌入一个文本文件,这样我就可以加载文本而无需从磁盘中读取它,因此我需要的所有东西都包含在exe中.(这样它更便携)

有没有办法做到这一点?我假设资源文件的东西?

如果可以的话,你是如何做到的,以及如何将文本加载到字符串中?

.net c# embedded-resource

117
推荐指数
4
解决办法
8万
查看次数

临时文件夹中的文件是否会自动删除?

如果我使用Path.GetTempPath()创建一些文件 - 它会在某个阶段自动删除,还是由我来删除它?

c# windows io temporary-files

17
推荐指数
3
解决办法
9659
查看次数

在C#中,有没有办法获得嵌入式资源文件的字符串路径引用?

我有一个方法,它接受一个字符串参数,该参数是文本文件的文件路径.我希望能够传入一个我作为资源嵌入到我的程序集中的文本文件.

有没有办法获得嵌入文本文件的字符串引用,以便它可以作为打开StreamReader的文件路径?

谢谢.

.net c#

7
推荐指数
2
解决办法
1万
查看次数

编写大文件的最佳实践

我需要在我的项目中写一个大文件.


我学到的是:

  • 我不应该将大文件直接写入目标路径,因为这可能会留下一个不完整的文件,以防应用程序在写入时崩溃.

  • 相反,我应该写一个临时文件并移动(重命名)它.(称为原子文件操作)


我的代码片段:

[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.我可以避免这个吗?

  • 编写大文件还有其他最佳实践吗?

  • 我的代码有什么建议吗?

.net c# system.io.file

3
推荐指数
2
解决办法
236
查看次数