Разрешение на запись в файл - PullRequest
0 голосов
/ 07 февраля 2012

Я пишу приложение для выгрузки содержимого в файлы.

Поток пока такой:

1 - User enters a Path

2 - App checks if the Directory Exists and if i have Writting Permissions

 2.a - If if exists, creates a empty file inside and closes it
 2.b - If it does not, creates the directory and the file inside it, and closes the file

Проблема в том, что, как только я достигаю точки, когда мне действительно нужно записать содержимое в этот файл, который я создал ранее, я не могу написать одну строку, это выдает мне «Доступ к пути запрещен».

Вот фрагмент кода, связанный с проблемой:

        // Writting ImgPixels to file

        if (BDC.BDCCommons.CommonUtils.DirectoryHasWritePermissions(folderPath))
        {
            using (StreamWriter filePointer = File.AppendText(folderPath))
            {
                filePointer.WriteLine(imgPixels);
            }
        }
        else
        {
            LogWriter.Error ("Permissão Negada", "Diretorio [ " + folderPath + "] nao tem permissao de escrita");
        }

Что может быть причиной этого! Заранее спасибо Ребята

Вопрос об улучшении:

@ 500 - Внутренняя ошибка сервера: folderPath - это путь к папке, да.

Думаю, я вижу, где моя ошибка. Там нет файла для записи, просто папка. Мой Плохой

Ответы [ 2 ]

2 голосов
/ 07 февраля 2012

Изменение:

using (StreamWriter filePointer = File.AppendText(folderPath))

до

using (StreamWriter filePointer = File.AppendText(Path.Combine(folderPath, fileName)))
1 голос
/ 07 февраля 2012

В зависимости от того, где вы пытаетесь написать файл, для этого вам могут потребоваться права администратора. Я работал над проектом, в котором мне нужно было записать файл в подкаталог папки Program Files, но столкнулся с проблемой разрешений.

Я нашел это для решения. В нем описано, как редактировать файл манифеста для проекта, чтобы предоставить права доступа к приложению при запуске.

...