166 / 138 / 23
Регистрация: 02.01.2011
Сообщений: 913
|
|
1 | |
Если во время работы програмы файл открыт("ручками", например), то выдается ошибка27.04.2011, 09:01. Показов 3057. Ответов 21
Метки нет Все метки)
(
Программа открывает фаил, записывает данные, закрывает файл. Если во время работы програмы файл открыт("ручками", например), то выдается ошибка "The process cannot access the file 'd:\ААА' because it is being used by another process". Как можно с этим бороться? Спасибо
0
|
|
27.04.2011, 09:01 | |
Ответы с готовыми решениями:
21
пользователь вводит название животного (например, "кот"), а в ответ ему выдается "мяу"
Представление данных в ячейках GridView. например, если 0 - записать "мужчина", если 1 - "женщина"
|
44 / 45 / 15
Регистрация: 11.08.2010
Сообщений: 226
|
|
27.04.2011, 14:55 | 2 |
file.Dispose();
0
|
166 / 138 / 23
Регистрация: 02.01.2011
Сообщений: 913
|
|
27.04.2011, 16:01 [ТС] | 3 |
File.Dispose освобождает ресурс, только я же не могу открыть уже открытыи(не моей программои) файл. Чем же мне это поможет? Поясните, пожалуйста
0
|
145 / 145 / 26
Регистрация: 09.10.2009
Сообщений: 261
|
|
27.04.2011, 19:14 | 4 |
Покажите код. Как вы с этим файлом работаете?
0
|
166 / 138 / 23
Регистрация: 02.01.2011
Сообщений: 913
|
||||||
28.04.2011, 08:20 [ТС] | 5 | |||||
0
|
145 / 145 / 26
Регистрация: 09.10.2009
Сообщений: 261
|
||||||
28.04.2011, 11:46 | 6 | |||||
Попробуйте так:
0
|
166 / 138 / 23
Регистрация: 02.01.2011
Сообщений: 913
|
|
30.04.2011, 02:04 [ТС] | 7 |
Спасибо за ответ, но увы, и с ВАшим вариантом при открытом файле csv получила ту же ошибку
![]()
0
|
36 / 31 / 2
Регистрация: 31.12.2009
Сообщений: 349
|
|
30.04.2011, 13:18 | 9 |
Попробуй скопировать файл и открыть.
0
|
166 / 138 / 23
Регистрация: 02.01.2011
Сообщений: 913
|
|
30.04.2011, 17:42 [ТС] | 10 |
В том-то и дело, что моя программа файл создает или дописывает, а другая программа использует. Т.е. есть опасение, что кто-то откроет созданныи моей програмои файл и "забудет"(все бывает) закрыть. Пока никакого другого способа как просто оставить запись в лог файле при невозможности записать что-либо в не мной открытый файл, я не нашла
![]()
0
|
60 / 60 / 13
Регистрация: 23.04.2011
Сообщений: 110
|
|||||||||||
30.04.2011, 18:18 | 11 | ||||||||||
вообще для нахождения блокирующего процесса существуют специальные проги (Unlocker, например). И написать нечто подобное (а дело, кажется, к этому и идёт) не такая уж тривиальная задача, если даже удастся найти блокирующий процесс, то необходимо будет отобрать у него этот ресурс.
в принципе, можно просто копировать файл и работать уже с копией (не айс, конечно, но хоть что-то ![]()
1
|
166 / 138 / 23
Регистрация: 02.01.2011
Сообщений: 913
|
|
01.05.2011, 02:12 [ТС] | 12 |
Спасибо, windzzor, попробую, но этот вариант мне вряд ли подоидет, т.к. имя файлов(не 1 , многих) зарезервировано(ну там, дата плюс специфическое имя, заданое пользователем) , вообшем, очень уж навороченно получается Но все-равно, большое спасибо!
0
|
60 / 60 / 13
Регистрация: 23.04.2011
Сообщений: 110
|
||||||
01.05.2011, 10:58 | 13 | |||||
c "1.txt" это я образно, абсолютные пути в коде ведь можно заменить на строковые переменные с именем файла, считанным из, скажем, OpenFileDialog или просто из консоли
0
|
6259 / 3560 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
|
||||||
01.05.2011, 11:56 | 14 | |||||
0
|
166 / 138 / 23
Регистрация: 02.01.2011
Сообщений: 913
|
|
02.05.2011, 10:19 [ТС] | 15 |
Спасибо, Петрр! А можно подробнее? Я не нашла в FileSystemWatcher действие Open. Т.е. можно обнаружить, что файл был изменен, переименован, но как мне поможет, FileSystemWatcher , если файл в данный момент открыт другой программой?
0
|
145 / 145 / 26
Регистрация: 09.10.2009
Сообщений: 261
|
|||||||||||
02.05.2011, 13:14 | 16 | ||||||||||
Попробуйте еще вот так:
0
|
166 / 138 / 23
Регистрация: 02.01.2011
Сообщений: 913
|
|
02.05.2011, 13:39 [ТС] | 17 |
ArtOfLife, увы..."The process cannot access the file 'd:\somefile.csv' because it is being used by another process."
0
|
60 / 60 / 13
Регистрация: 23.04.2011
Сообщений: 110
|
|
02.05.2011, 13:42 | 18 |
iva_a, файл открыт всегда в какой-то конкретной программе на том же компьютере?
0
|
166 / 138 / 23
Регистрация: 02.01.2011
Сообщений: 913
|
|
02.05.2011, 13:59 [ТС] | 19 |
В принципе, это "защита от дурака" Т.е. моя программа создает эти фаилы(вернее собирает из базы данных), чужая считывает из них данные для web и прочего. Т.е. по идее, не должно быт так, чтобы чтобы файлы оставались открытыми... Но из практики ... Бывает все... Хочется предусмотреть как можно больше
![]()
0
|
145 / 145 / 26
Регистрация: 09.10.2009
Сообщений: 261
|
||||||||||||||||
02.05.2011, 21:41 | 20 | |||||||||||||||
Если вы не контролируете процесс чтения (или я неправильно понял фразу "чужая считывает из них данные"?), то вряд ли вам удастся полностью контролировать процесс записи от подобного рода ошибок доступа. В случае, если стороннее приложение первым получило доступ к файлу с определенными правами, то "забрать" у него ваш файл можно лишь посредством убиения этого процесса, что не есть корректно.
Если же вы управляете приложениями чтения и записи, то я бы советовал использовать именованные мутексы. Тогда код чтения и записи будет выглядеть следующим образом:
В принципе, если вы не контролируете процесс чтения, то можно подкорректировать выше указанный код записи следующим образом:
Добавлено через 13 минут П.С. Только название мутекса в обоих модулях должно быть одинаковым.
1
|
02.05.2011, 21:41 | |
Помогаю со студенческими работами здесь
20
Ошибка времени выполнения: "Файл не открыт" Выдается ошибка использована неинициализированная локальная переменная "H" и "V"
Ошибка во время работы в Corel ("экран смерти") Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |