Скопировать файл в папку только с разрешением на запись

#c#

#c#

Вопрос:

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

вот код, который я использую, и он выдает мне ошибку (доступ к пути запрещен).

 DirectoryInfo dirInfo = new DirectoryInfo("D:");
                FileInfo[] fileInfos = dirInfo.GetFiles($"abc_Converted.txt");
                foreach (FileInfo file in fileInfos)
                {
                    File.Copy(file.FullName, Path.Combine($"D:\D", file.Name), true);  // overwrites existing
                }
  

Скриншот кода
есть предложения о том, как я могу этого добиться?

Вот мое разрешение папки введите описание изображения здесь

Комментарии:

1. Можете ли вы также показать разрешения?

2. да, я обновлю свой вопрос.

3. @CaiusJard уже обновил мой вопрос, спасибо 🙂

4. Могу я предложить вам включить все разрешения, посмотреть, работает ли это, затем вернуться к тому, что вы опубликовали, и посмотреть, в какой момент это останавливается? Кроме того, действительно ли приложение запущено от имени этого пользователя?

5. Таким образом, может показаться, что Копия по какой-то причине выполняет Чтение.. Вы можете прочитать код System.IO.File здесь

Ответ №1:

У вас есть только права на запись.

изhttps://learn.microsoft.com/en-us/dotnet/api/system.security.permissions .завершение работы с файлом?view=dotnet-plat-ext-3.1

Доступ на запись к содержимому файла или доступ для изменения информации о файле, такой как его имя. Также позволяет удалять и перезаписывать.

Вы копируете файл, поэтому его нужно создать.

Комментарии:

1. В этом ответе, похоже, отсутствуют некоторые слова?