2012-06-03 3 views
-2

Можно создать дубликат:
Getting the application's directory from a WPF applicationПолучение файла в определенную папку на C#

Я хочу Асесс файлы из директории проекта, как и в Java без использования "C: \ Path", потому что создать файл исключение в моей картине поле это код в мой таймер

if (imagecount == 30) 
{ 
    this.pictureBox1.Image = System.Drawing.Image.FromFile(@"C:\Users\Baloi\Documents\visual studio 2010\Projects\WinEX\WinEX\" + image() + ".jpg"); 
    imagecount = 0; 
} 

else if (imagecount < 30) 
    imagecount++; 
+2

В чем Ваш вопрос? – Oded

+0

Также похоже на: http://stackoverflow.com/questions/3259583/how-to-get-files-in-a-relative-path-in-c-sharp –

ответ

2

Aplication directory :

string baseDirectory = AppDomain.CurrentDomain.BaseDirectory; 

Executable Directory:

string executableDirectory = Path.GetDirectoryName(Application.ExecutablePath); 

на основе ваших требований вы можете использовать один из выше с Path.Combine и построить полный путь к вашему местоположению изображения.

Или вы можете вставлять изображения в файл ресурсов. то вы можете загрузить их в качестве

Stream imgStream = 
    Assembly.GetExecutingAssembly().GetManifestResourceStream(
    "YourNamespace.resources.ImageName.bmp"); 
pictureBox.Image = new Bitmap(imgStream); 
0

Вы можете использовать код:

this.pictureBox1.Image = System.Drawing.Image.FromFile(image() + ".jpg"); 

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

+0

спасибо, но изображение - это целочисленный возврат номера фотографии –

+0

FileNotfoundException –

0

У вас есть несколько вариантов:

  1. Вставить фотографии в вашем проекте (установить действие компилировать внедренные данные)

  2. Reference ваших фотографии, используя относительный путь. Это немного осложняется тем, что, в то время отладки, бинарные сборки находятся в Bin \ Debug папку

Для варианта 1:

System.Reflection.Assembly thisExe; 
thisExe = System.Reflection.Assembly.GetExecutingAssembly(); 
System.IO.Stream file = 
    thisExe.GetManifestResourceStream("AssemblyName.ImageFile.jpg"); 
this.pictureBox1.Image = Image.FromStream(file); 

http://msdn.microsoft.com/en-us/library/aa287676(v=vs.71).aspx

Для варианта 2:

string appPath = Path.GetDirectoryName(Application.ExecutablePath); 
if (System.Diagnostics.Debugger.IsAttached) 
{ 
    contentDirectory = Path.Combine(appPath + @"\..\..\content"); 
} 
else 
{ 
    contentDirectory = Path.Combine(appPath, @"content"); 
} 
+0

Спасибо, он отлично работает, я попросил то же самое на Codeproject, но люди смотрят только –

+0

ошибка на картинке нулевой поток –

Смежные вопросы