2014-01-16 4 views
0

У меня есть папка «Изображения» в проекте моей визуальной студии.Получить файлы в папке проекта

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

В конечном счете, я стараюсь сделать следующее (явно заменяя «Images/image1.jpg» с помощью imageFile).

foreach (string imageFile in imageFolder) 
{ 
    ImageSource imageSource = new BitmapImage(new Uri("Images/image1.jpg", UriKind.Relative)); 
} 

Используя что-то вроде:

Directory.GetParent(Directory.GetCurrentDirectory()).Parent.FullName 

не работает, потому что .exe может работать в любом месте.

+0

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

ответ

1

Если вам не нужно добавлять или удалять такие изображения во время установки приложения на компьютере пользователя, добавьте изображения в ресурсы, перетащив их на вкладку «Ресурсы» в свойствах проекта и ссылаясь на них, используя Properties.Resources в своем коде.

1

Если вы используете копирование папки изображения на выходе приложения и принимая папку с вами на новых компьютерах можно использовать

var path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase) 

Если у вас нет много больших изображений, почему бы не включить их в качестве встроенных ресурсов. http://support.microsoft.com/kb/319292

0

Храните изображения (и другие ресурсы) вместе с EXE-файлом (либо в той же самой папке, которая является самой простой, либо использует структуру каталогов).

К примеру:

\Bin 
    my.exe 
    my.pdb 
\Help 
    my.html 
\Resources 
    1.jpg 
    2.jpg 

Тогда вы можете так что-то вроде

private static string PathRoot { get { return Path.GetDirectoryName(Path.GetDirectoryName(Application.ExecutablePath)); } } 
    public static string PathResources { get { return Path.Combine(PathRoot, "Resources"); } } 
Смежные вопросы