Записать файл CSV в C: \ temp, где работает Windows 10 IoT, из универсального приложения Windows - PullRequest
0 голосов
/ 26 февраля 2019

Я пишу приложение, которое должно выгружать некоторые данные в c: \ temp \ TempData.csv, когда Raspberry Pi 3 (с Windows 10 IoT) не может отправить данные в базу данных Azure.

До сих пор я был в состоянии создать папку и файл с помощью Windows Powershell, но когда я пытаюсь сохранить данные в файл из приложения, я просто получаю «System.UnauthorizedAccessException: доступ к пути« C: \ temp »в System.IO.WinRTIOExtensions ", из этой ошибки более чем ясно, что мы говорим о разрешениях, но я уже пытался изменить ACL для этой папки: get-acl" c: \ temp "вернет" temp BUILTIN \Все администраторы разрешают FullControl ... ", поэтому он должен иметь все необходимые разрешения.

Со стороны приложения у меня есть код, который должен отправлять данные в файл:

public static async void SaveFileAsync()
    {
        string File = @"c:\temp\TempData.csv";

        for (int i = 0; i < 50; i++)
        {
            var DataPoint = new SensorData
            {
                Temp = GetNewRandom(22, 40),
                Humidity = GetNewRandom(25, 30),
                Pressure = GetNewRandom(90000, 110000)
            };

            await WriteCSVLine(File, DataPoint);
        }
    }

    private static Task WriteCSVLine(string FilePath, SensorData data)
    {
        try
        {
            using (StreamWriter w = File.AppendText(FilePath))
            {
                return w.WriteLineAsync(data.ToString());
            }
        }
        catch (Exception ex)
        {
            Debug.WriteLine(ex.Message);
            throw;
        }

    }

1 Ответ

0 голосов
/ 27 февраля 2019

Здесь приводится общее обсуждение Доступ к файлам в Windows IoT Core на форуме MSDN. Для этой проблемы вам необходимо использовать инструмент FolderPermissions , чтобы сделать папку доступной для приложения UWP.Пожалуйста, попробуйте запустить следующую команду в PowerShell.У меня отлично работает с вашими кодами.

FolderPermissions c:\temp -e
...