BarryGroom Ответов: 4

Создание вложенных папок из приложения на win 10


У меня есть приложение, которое создает подпапки под основной рабочей папкой. Это работает уже несколько лет на XP, Vista, Win 7 и до недавнего времени на Win 10, который теперь не позволит создавать эти папки. Я установил разрешения на полный контроль, но все равно он не будет создавать подпапки из приложения. Я могу создавать их вручную. Что мне нужно сделать, чтобы моя программа могла создавать свои рабочие подпапки?

Что я уже пробовал:

Установка разрешений на полный контроль для папок, приложений и всего остального .файл DLL

Я также изменил код, чтобы использовать команду md, которая позволяет создавать подпапки вручную, но вызов этого в приложении по-прежнему не работает

[no name]

Выясните, что мешает вам создавать папки, и тогда вы сможете найти решение.

Maciej Los

Запустите программу с правами администратора (щелкните правой кнопкой мыши на исполняемом файле).

4 Ответов

Рейтинг:
2

Maciej Los

Как я уже упоминал в комментарии к этому вопросу, вы должны запустить свой исполняемый файл с правами администратора. Другой вариант-создать ярлык для этого исполняемого файла, а затем: Properties -> Advanced -> проверять "Run as administrator" вариант.

Пожалуйста, прочтите это: Как создать файл или папку (руководство по программированию на C#) | Microsoft Docs[^] .Объем системы безопасности часть.


Рейтинг:
2

BarryGroom

Решение этой проблемы заключается в установке программы в папку Program Files (или ее подпапку)

Как только это будет сделано, программа сможет создавать папки/файлы в любом месте ПК (а может быть, и в сети?)

Если вы считаете, что это хорошая мера безопасности, я не согласен...


Рейтинг:
0

Dave Kreskowiak

Если под "основной рабочей папкой" вы подразумеваете под C:\Program файлы, тогда да, вам в приложении отказано в доступе, потому что все, что находится под программными файлами, доступно только для чтения обычным пользователям.

Вы должны использовать более подходящее место для размещения файлов данных, например под C:\ProgramData\< mycompanyname>\ & lt; myappname>. Эти папки доступны для записи любым пользователем.

Чтобы получить путь к папке ProgramData, вызовите Окружающая среда.GetFolderPath()[^] и использовать CommonApplicationData[^] enum value в качестве параметра.

Вы будете иметь, чтобы построить остальную часть пути, \&ЛТ;mycompanyname&ГТ;\&ЛТ;myappname&ГТ; часть. Воспользуйся Путь.Объединять()[^] для этого.


Рейтинг:
0

BarryGroom

Основная рабочая папка была настроена на документы (как и было рекомендовано), но она по-прежнему не может создавать подпапки.

Я снова попробовал работать администратором - никакой радости.

Теперь мы обновили идеально работающий компьютер Win 8 с последними патчами от MS, и теперь он тоже не может создавать подпапки...

Я думаю, что MS ввела серьезную ошибку.