我尝试使用Windows IoT 10 Core上运行的UWP应用程序写入文件,但是应用程序意外关闭。
代码:
private async void logFile()
{
StorageFile file = await KnownFolders.DocumentsLibrary.CreateFileAsync("robodem.log", CreationCollisionOption.OpenIfExists);
using (Stream fileStream = await file.OpenStreamForWriteAsync())
using (var streamWriter = new StreamWriter(fileStream))
{
streamWriter.Write("test");
}
}
我为Package.appxmanifest添加了权限:
<Capabilities>
<Capability Name="internetClient" />
<uap:Capability Name="musicLibrary" />
<uap:Capability Name="removableStorage" />
<uap:Capability Name="picturesLibrary" />
<uap:Capability Name="videosLibrary" />
<uap:Capability Name="documentsLibrary" />
<DeviceCapability Name="webcam" />
<DeviceCapability Name="serialcommunication">
<Device Id="any">
<Function Type="name:serialPort" />
</Device>
</DeviceCapability>
</Capabilities>
输入代码后,应用程序立即关闭,并显示默认的Hello World应用程序。
我的问题:
StreamWriter("log.log")
将在哪里创建日志文件?更新
我对代码进行了少许修改,因为它提供了here:
StorageFolder storageFolder = await KnownFolders.GetFolderForUserAsync(null, KnownFolderId.DocumentsLibrary);
try
{
StorageFile file = await storageFolder.CreateFileAsync("robodem.log", CreationCollisionOption.ReplaceExisting);
using (Stream fileStream = await file.OpenStreamForWriteAsync())
using (var streamWriter = new StreamWriter(fileStream))
{
streamWriter.Write("test");
}
}
catch (Exception ex)
{
onMessageOccured(Severity.Error, ex.Message);
}
我看到的错误:
更新
我将调试器类型设置为混合模式,这没有帮助。
答案 0 :(得分:1)
通常不建议也不允许使用文档库。请参阅此blog,以了解UWP应用程序中的documentsLibrary功能。最好更改保存位置。如果您仍然想使用DocumentsLibrary,请在您的应用清单中添加文件类型关联,以声明您的应用可以访问的特定文件类型。