当我使用 StorageFile 类获取文件内容时如何创建文件?还是我需要使用另一个类来最初创建一个文件(例如文件)?在 UWP 中是否推荐?
接收的内容通常是字符串格式。您可能需要在某个地方创建一个新的空白文件,通常是当前应用程序的本地文件夹。然后,将内容写入刚刚创建的文件。这是一个非常示例的演示:
string content = "postcontent";
StorageFolder localfolder = Windows.Storage.ApplicationData.Current.LocalFolder;
Windows.Storage.StorageFile sampleFile = await localfolder.CreateFileAsync("sample.pdf", Windows.Storage.CreationCollisionOption.ReplaceExisting);
await Windows.Storage.FileIO.WriteTextAsync(sampleFile, content);
有关如何使用StorageFile 创建和写入文件的详细信息,请参考this article。请注意,这只是一个简单的创建和写入文件示例,对于真正的 pdf 文件,这需要将复杂格式的内容写入文件。
StorageFile类用于uwp中的文件操作,我们使用该类创建和写入文件,其他类可能不需要。 File 属于 System.IO 命名空间的类也应该在 uwp 中使用,但建议使用 StorageFile。
有没有办法在不创建文件物理副本的情况下使用 StorageFile 类
恐怕不会。正如我上面所说的StorageFile是用于访问文件对象,如果没有文件如何访问?您收到的内容不应是文件对象,它们可能是文本或文件流。
哪个选项更好 - 首先将文件保存在临时文件夹中,然后使用它或直接创建 StorageFile 类?为什么?
创建一个临时文件,您将拥有一个StorageFile 实例,然后您应该能够通过StorageFile 对象写入接收到的文件流内容。似乎在本地文件夹中创建一个临时文件是更好的方法,因为 StorageFile 可能不是由 http 内容创建的。
另外,UWP中的文件访问有特殊权限我们可能需要注意,具体可以参考File access permissions。