В документах этой папки нету. Проверил этот путь в проводнике, получил ту же ошибку.
Что делает прога: перемещает файлы разных форматов из папки А в папку Б, В, Г.
Почему ошибка: я сделал проверку совпадения файлов в каждой юзерской папке (документы, видео, изображения, музыка, загрузки). Так вот, в документах есть папка "Мои видеозаписи", к которой доступа абсолютно нету.
Что мне нужно: возможно ли сделать проверку папки "Документы" пропуская "неведимку"?
Я в с# новичок и многого не знаю, запрашиваю часть кода с обходом данной проблемы
C#
По пути "C:\Пользователи\"USERNAME"\Документы\Мои видеозаписи" доступ запрещён
Если Вы хардкодили путь именно так C:\Пользователи\"USERNAME"\Документы\Мои видеозаписи - у меня плохие новости.
ВСЕГДА пользуйтесь специальным классом для получения "пользовательских папок".
Environment.SpecialFolder
https://docs.microsoft.com/ru-ru/dotnet/api/system.environment.specialfolder?view=netframework-4.8
1. "Пользовательские папки" могут по разному называться в зависимости от языка Windows. Нельзя строго прописывать пути. Более того стандартные названия папок иногда менялись Microsoft. И нет никаких гарантий, что не будет ещё изменений.
И более того они не всегда могут быть на C:
2. В случае использования MUI (многоязычная система под Windows, позволяющая установить разные языковые пакеты и переключаться между ними) папки отображаются в проводнике не с теми именами, какие на самом деле существуют на диске. Н-р в проводнике папка выглядит с названием Мои видеозаписи или Видео (в зависим. от версии Windows). На самом деле она называется My Videos или Videos, и её "настоящее" название можно увидеть либо через cmd + dir либо через файл-менеджеры. Эти имена подставляются обычно из shell32.dll и прописываются в спец. файле desktop.ini
Пруф:
Если посмотреть файл desktop.ini то там будет такая строка
[.ShellClassInfo]
LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21791
-21791 это и есть ID ресурса в shell32.dll откуда берется локализованное имя.
Можете для прикола поставить другой ID, нажать в проводнике F5 и отображаемое имя папки станет другим. Только аккуратнее =)
В т. ч. такой эффект дает возможность якобы создать папки с одинаковыми названиями в одной папке =)
Обратите внимание что Captures так-же "переведена" в Клипы.

ВСЕГДА пользуйтесь специальным классом для получения "пользовательских папок".
Environment.SpecialFolder
https://docs.microsoft.com/ru-ru/dotnet/api/system.environment.specialfolder?view=netframework-4.8
1. "Пользовательские папки" могут по разному называться в зависимости от языка Windows. Нельзя строго прописывать пути. Более того стандартные названия папок иногда менялись Microsoft. И нет никаких гарантий, что не будет ещё изменений.
И более того они не всегда могут быть на C:
2. В случае использования MUI (многоязычная система под Windows, позволяющая установить разные языковые пакеты и переключаться между ними) папки отображаются в проводнике не с теми именами, какие на самом деле существуют на диске. Н-р в проводнике папка выглядит с названием Мои видеозаписи или Видео (в зависим. от версии Windows). На самом деле она называется My Videos или Videos, и её "настоящее" название можно увидеть либо через cmd + dir либо через файл-менеджеры. Эти имена подставляются обычно из shell32.dll и прописываются в спец. файле desktop.ini
Пруф:
Если посмотреть файл desktop.ini то там будет такая строка
[.ShellClassInfo]
LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21791
-21791 это и есть ID ресурса в shell32.dll откуда берется локализованное имя.
Можете для прикола поставить другой ID, нажать в проводнике F5 и отображаемое имя папки станет другим. Только аккуратнее =)
В т. ч. такой эффект дает возможность якобы создать папки с одинаковыми названиями в одной папке =)
Обратите внимание что Captures так-же "переведена" в Клипы.

Запустите программу от имени администратора
Похожие вопросы
- Регистрация пользователей и Вход в аккаунт C#(console)
- Как работают элементы доступа set и get в C#? Никак не могу понять их. Ответьте только по делу, не нужно писать ерунду
- C# Массив структур.Конструктор .Доступ к отдельным элементам массива в массиве структур.
- Стоит ли дальше учить C#?
- Программирование на C Sharp (C#)
- Сегодня начал учить c#, решил сделать калькулятор простой и столкнулся с такой ошибкой при компиляции, хелпуйте.
- Что лучше C# или C++?
- Зачем разбивать код в C# на отдельные классы?
- Помогите пожалуйста. Написать на C#
- Python, C, C++, C#, Что выбрать-то?
string userfolderD = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + @"\Documents";
public void user_docs()
{
files = Directory.EnumerateFiles(userfolderD, "*.*", SearchOption.AllDirectories);
foreach (string docs in files)
{
e4 = docs;
}
}