UWP 应用程序在文件写入时崩溃
UWP application crashes on file write
我尝试在 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 应用程序。
我的问题:
- 在哪里可以找到 Windows IoT Core 10 上的应用程序日志以及如何阅读它?
- 在哪里可以找到有关 Windows IoT -> UWP 文件系统抽象的信息?
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);
}
我看到的错误:
更新
我将调试器类型设置为混合模式,它没有帮助。
通常不推荐也不允许使用文档库。请参阅此 blog 关于 UWP 应用程序中的 documentsLibrary 功能。最好更改保存位置。如果您仍想使用 DocumentsLibrary,请将文件类型关联添加到您的应用程序清单中,以声明您的应用程序可以访问的特定文件类型。
我尝试在 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 应用程序。
我的问题:
- 在哪里可以找到 Windows IoT Core 10 上的应用程序日志以及如何阅读它?
- 在哪里可以找到有关 Windows IoT -> UWP 文件系统抽象的信息?
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);
}
我看到的错误:
更新
我将调试器类型设置为混合模式,它没有帮助。
通常不推荐也不允许使用文档库。请参阅此 blog 关于 UWP 应用程序中的 documentsLibrary 功能。最好更改保存位置。如果您仍想使用 DocumentsLibrary,请将文件类型关联添加到您的应用程序清单中,以声明您的应用程序可以访问的特定文件类型。