为了账号安全,请及时绑定邮箱和手机立即绑定

创建 .txt 文件——UWP Windows 10 应用程序 C#

创建 .txt 文件——UWP Windows 10 应用程序 C#

C#
侃侃无极 2021-11-14 17:08:25
在我的测试应用程序中,我想输出一个 .txt 文件或 .etl 登录应用程序目录的用户。例如,我想测试的一件事是相机的曝光。我希望结果在 .txt 文件或日志 .etl 文件中返回。var exposureControl = _mediaCapture.VideoDeviceController.ExposureControl;var outOfRangeValue = 0; // millisecondsif (exposureControl.Min.Millieseconds > outOfRangeValue) {    textFile.add("Passed: Minimum Exposure" + exposureControl.Min.Millieseconds.ToString() + " is greater than " +  outOfRangeValue.ToString()");} else {    textFile.add("Failed: Minimum Exposure " + exposureControl.Min.Millieseconds.ToString() + " should not be less than " + outOfRangeValue.ToString() + " bc app will crash");}然后在使用此 Windows 10 UWP 应用的设备上,创建的文本文件或 .etl 日志应包含以下字符串之一:Passed: Minimum Exposure 0.06 is greater than 0或者Failed: Minimum Exposure 0.06 should not be less than 0因此,我基本上需要一些充当我的假textFile.add("")cmd 的东西。什么是最好的方法来做到这一点?我研究过诸如 MetroLog 和 Serilog 之类的记录器。和微软的日志示例:https : //github.com/Microsoft/Windows-universal-samples/tree/master/Samples/Logging。另一个 Microsoft 示例:https : //code.msdn.microsoft.com/windowsapps/Logging-Sample-for-Windows-0b9dffd7#content。还有这个博主的例子:http : //cryclops.com/2014/01/not-so-stupid-simple-logging-for-windows-store-apps-in-cvb/我已经尝试实现 MetroLog 和上面引用的两个 Microsoft 示例,但我无法确定文件的创建位置。无论如何,我什至不确定这些是否是我想要的结果的最佳方法。
查看完整描述

2 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

如果您想在没有 Logger 的情况下执行此操作,您可以执行以下操作:


private async Task AddTextToFile(String textToSave)

{

    var appFolder = Windows.Storage.ApplicationData.Current.LocalFolder;

    var file = await appFolder.CreateFileAsync("exposure.txt", 

        Windows.Storage.CreationCollisionOption.OpenIfExists);

    await Windows.Storage.FileIO.AppendTextAsync(file, textToSave + Environment.NewLine);

    // Look in Output Window of Visual Studio for path to file

    System.Diagnostics.Debug.WriteLine(String.Format("File is located at {0}", file.Path.ToString()));

}


private async void Button_Click(object sender, RoutedEventArgs e)

{

    await AddTextToFile(String.Format("MinimumExposure {0}", DateTime.Now.Millisecond.ToString()));

}

正如 kennyzx 所说,此文件位于隐藏目录中,因此我添加了一个 Debug.WriteLine() 命令,以便在以调试模式运行应用程序时,您可以在 Visual Studio 的输出窗口中看到文件的位置。如果您使用此代码,您可能希望删除该行。


查看完整回答
反对 回复 2021-11-14
?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

生成的文件MetroLog在应用程序的appdata 文件夹中创建,即C:\Users\<username>\AppData\Local\Packages\<package family name of your app>\LocalState.

在 Windows 资源管理器中展开路径时,注意下面的AppData文件夹C:\Users\<username>是隐藏的,因此您需要在资源管理器中选中“显示隐藏文件”。


查看完整回答
反对 回复 2021-11-14
  • 2 回答
  • 0 关注
  • 253 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信