Работа с файлами в C#
От: BeaverNew  
Дата: 30.08.06 07:52
Оценка:
У меня возникла проблема при работе с файлами. Для того что бы выбрать файл с диска использую класс
OpenFileDialog

в следующей функции:

  private void bBrowse_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();

            if (ofd.ShowDialog() == DialogResult.OK)
            {
                LoadImage(ofd.FileName);
            }
            ofd.Dispose();
        }



Файл-изображение открывается функцией:

        protected void LoadImage(string FileName)
        {
            if (FileName.Length != 0)
            {
                Bitmap bitmap = new Bitmap(FileName);
                if (MyBitmap != null)
                    MyBitmap.Dispose();
                MyBitmap = bitmap;
                Invalidate();
            }
        }



После открытия файла перестают корректно работать функции класса
System.IO.File

например,
File.Exists(FILE_NAME)


Если открывать файл просто через путь, то все нормально:

        private void bOpen_Click(object sender, EventArgs e)
        {
                LoadImage(FILE_NAME);
        }


Подскажите, что я делаю не так. Или лучше использовать другой класс для выбора файла?
Re: Работа с файлами в C#
От: BluntBlind  
Дата: 30.08.06 08:19
Оценка: 2 (1)
BN>
BN>        protected void LoadImage(string FileName)
BN>        {
BN>            if (FileName.Length != 0)
BN>            {
BN>                Bitmap bitmap = new Bitmap(FileName);
BN>                if (MyBitmap != null)
BN>                    MyBitmap.Dispose();
BN>                MyBitmap = bitmap;
BN>                Invalidate();
BN>            }
BN>        }
BN>


В MSDN про конструктор

public Bitmap (
    string filename
)


написано (в Remarks):

The file remains locked until the Bitmap is disposed

Re[2]: Работа с файлами в C#
От: BeaverNew  
Дата: 30.08.06 10:18
Оценка:
BN> The file remains locked until the Bitmap is disposed

Некорректно работает не с именно этим файлом, а с любым.
Спрашивая о существовании какого-либо файла(он существует) до использования
OpenFileDialog
и после получаем, что до файл есть, а после нет.
Re[3]: Работа с файлами в C#
От: Аноним  
Дата: 30.08.06 11:34
Оценка:
Здравствуйте, BeaverNew, Вы писали:


BN>> The file remains locked until the Bitmap is disposed


BN> Некорректно работает не с именно этим файлом, а с любым.

BN> Спрашивая о существовании какого-либо файла(он существует) до использования
BN>
BN>OpenFileDialog
BN>
и после получаем, что до файл есть, а после нет.


При запуске программы текущий путь устанавливается в директорию, в котрой находится эта самая программа. А вот OpenFileDialog изменяет его.

Поэтому ты не можешь найти файл с относительным путем.
Re[4]: Работа с файлами в C#
От: BeaverNew  
Дата: 30.08.06 13:53
Оценка:
Спасибо
Re[5]: Работа с файлами в C#
От: Дьяченко Александр Россия  
Дата: 30.08.06 14:45
Оценка: 1 (1)
Здравствуйте, BeaverNew, Вы писали:

В OpenFileDialog (в Save тоже) есть свойство "востанавливать каталог". Тоже помогает.
... << RSDN@Home 1.2.0 alpha rev. 655>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.