Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2014, 20:58   #1
EnterSadman
Новичок
Джуниор
 
Регистрация: 09.04.2014
Сообщений: 3
По умолчанию пПомогите найти предупреждение програмы

Добрый вечер. Есть вопрос. Написана програма, но при успешном вводе пароля, который хранится в базе данных, выскакивает предупреждение с текстом "Необработанное исключение типа 'System.IO.IOException' произошло в mscorlib.dll Дополнительные сведенья: Процесс не может получить достуа к файлу 'путь к файлу', т.к. этот файл используется другим процессом."
Как мне решить данную проблему? Сколько раз не пытался - результат один и тот же.
EnterSadman вне форума Ответить с цитированием
Старый 10.04.2014, 00:47   #2
lawliet93
Форумчанин
 
Регистрация: 30.08.2011
Сообщений: 102
По умолчанию

это значит, что файл, который ты хочешь считать или что ты там с ним делаешь, уже используется какой-то программой, что не ясно? подумай, какие программы еще могут использовать тот файл и закрой их
lawliet93 вне форума Ответить с цитированием
Старый 10.04.2014, 12:22   #3
EnterSadman
Новичок
Джуниор
 
Регистрация: 09.04.2014
Сообщений: 3
По умолчанию

В том то и дело, что файл ничто не использует. Опишу ситуацию. Файла самого нет (файл текстовый *.txt). При входе в программу он сам его создает и записывает данные. Если я уберу код на БД (которая мне нужна) и поставлю просто программный код, то всё работает, без ошибок.
EnterSadman вне форума Ответить с цитированием
Старый 10.04.2014, 16:31   #4
micronic
Новичок
Джуниор
 
Регистрация: 10.04.2014
Сообщений: 1
По умолчанию

Добрый день!

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

Во-вторых, открытый в другой программе файл все равно можно прочитать, если очень хочется:
Код:
using System.IO;
Код:
FileStream fs = File.Open(FName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
string str = "";
byte[] b = new byte[1024];
UTF8Encoding temp = new UTF8Encoding(true);
while (fs.Read(b, 0, b.Length) > 0)
{
    str += temp.GetString(b);
}
fs.Dispose();
string[] lines = str.Split(new char[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries);
Обратите внимание при этом на кодировку файла. Так же я игнорирую пустые строки.
micronic вне форума Ответить с цитированием
Старый 10.04.2014, 16:41   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Во-вторых, открытый в другой программе файл все равно можно прочитать, если очень хочется:
только если файлу разрешен шаринг чтения, а это не всегда так.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.04.2014, 20:34   #6
EnterSadman
Новичок
Джуниор
 
Регистрация: 09.04.2014
Сообщений: 3
По умолчанию

Что ж. Ошибка устранена. Но спасибо за ответы. Суть ошибки в следующем коде:
имя_формы.Form2 Form2 = new Form2();
Решение: убрал эту строку
EnterSadman вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Предупреждение о ЧП и ЧС Кинельски Свободное общение 13 08.04.2013 16:25
Предупреждение о возрасте +18 vryskov Софт 8 02.12.2012 17:55
Предупреждение W1055... Khayzenberg Общие вопросы Delphi 1 24.11.2012 22:03
(предупреждение о производительности) mrandrey Общие вопросы C/C++ 10 25.08.2009 20:49
Предупреждение Sergius X Общие вопросы Delphi 1 04.06.2009 17:32