Можем ли мы создать папку в проекте и добавить изображения в нее пользователем вместо bin? - PullRequest
0 голосов
/ 09 марта 2019

Я создаю настольное приложение, в которое пользователь может добавлять людей и их изображения. В настоящее время папка с изображениями находится в папке bin, но когда я публикую приложение и запускаю на клиентском ПК, папка с изображениями пропадает.

OR

Можно ли программно добавлять изображения в Project->Properties->Resources?

Can i use this folder?

В настоящее время, когда я пытался использовать эту папку изображений в PMS Project, тогда изображения добавлялись в папку, присутствующую в bin folder. Как я могу добавить в эту папку? В настоящее время я пытался получить доступ к этому

string path = System.IO.Directory.GetCurrentDirectory();

Bitmap imgImage = new Bitmap(pictureBox1.Image);

System.IO.File.Copy(ImageName, Path.Combine(appPath, CNIC + Path.GetFileName(ImageName)), true);

Я также хочу сохранить папку с изображениями в папке установки. Но это идет в папке бен. Как мне этого добиться?

Ответы [ 2 ]

1 голос
/ 09 марта 2019

Если вы хотите, чтобы папка создавалась автоматически, вы можете добавить основные изображения, которые будут помещаться в эту папку, и пометить их свойства Build Action и Copy to Output Directory соответствующим образом в ихокно свойств.Это гарантирует, что папка будет создана, а также будут скопированы изображения в опубликованной копии.

enter image description here

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

System.IO.Directory.CreateDirectory("ss")

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

  • Используйте соответствующее хранилище базы данных.

  • C: \ Users \ [ИМЯ ПОЛЬЗОВАТЕЛЯ] \ AppData \ Roaming

    var directory = Environment.GetFolderPath (Environment.SpecialFolder.AppData);

    ИЛИ

    var directory = Environment.GetFolderPath (Environment.SpecialFolder.MyDocuments);

  • Или просто D: \ Temp \ [ApplicationName]

1 голос
/ 09 марта 2019

Если вы планируете иметь личную папку, в которой ваше приложение хранит некоторые данные, вам следует использовать стандартные спецификации. Вам следует создать папку внутри Environment.ApplicationData, определенной в SpecialFolder enum

В коде запуска вашего приложения может быть что-то подобное

 string commonFolder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
 string appFolder = Path.Combine(commonFolder, "PMS");
 string imgFolder = Path.Combine(appFolder, "PoliceImages");
 Directory.CreateDirectory(imgFolder);

Теперь эти строковые переменные должны храниться в каком-то статическом классе глобальной конфигурации, где вы можете получить их в любой части вашего приложения

...