![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
alhimik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 20.7.2007 Репутация: нет Всего: 1 |
Название темы само говорит за себя. И я уже гуглил и пробовал все возможные варианты с FileShare - ничего не помогло, вылетает исключение ошибки доступа к файлу. Собственно есть задание: скопировать видеофайл из кеша Opera 9.52. Он хранится в каталоге TMP. Ни Виндовс-система ни программа не может этого сделать... Почему так? И есть ли выход из данной ситуации? Вот код:
|
|||
|
||||
Bishop |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 188 Регистрация: 3.6.2005 Где: Минск, Беларусь Репутация: 6 Всего: 16 |
alhimik,
Давай определимся с условиями. Opera 9.52 хранит кеш совсем не во временном каталоге системы, а по умолчанию в %LOCALAPPDATA%\Opera\Opera*\profile\cache4 (Opera* — имя каталога установки). Посмотреть и изменить можно введя в адресной строке opera:config#UserPrefs|CacheDirectory4. Плюс файлы называются opr????? и не блокируются. Т.е. скопировать можно вот так:
По коду: ты пытаешься открыть файл в режиме FileShare.None, но так как он уже кем-то открыт, то система не может выполнить твое требование эксклюзивного доступа, даже если файл доступен для чтения. Вот пример:
Ну а если файл действительно заблокирован, то насколько я знаю, средствами .NET прочитать его будет сложно. 3 метода работы с занятыми файлами |
||||
|
|||||
alhimik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 20.7.2007 Репутация: нет Всего: 1 |
Bishop, если использовать FileMon, то можно увидеть что в TMP тоже файл создается...и в принципе нету разницы Опера это или Firefox...но суть в том что некоторые файлы с папки TMP выгрести не удаётся. И, как всегда, стандартные средства .NET не в силе справиться с этой задчей, нужно прибегать к извращениям(
А FileShare.ReadWrite в данном случае не конает, я пробовал ![]() Очевидно, хранилище TMP организовано каким-то хитромудрым образом) Это сообщение отредактировал(а) alhimik - 31.8.2008, 19:10 |
|||
|
||||
Bishop |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 188 Регистрация: 3.6.2005 Где: Минск, Беларусь Репутация: 6 Всего: 16 |
alhimik,
Ну так это наверно временные файлы Flash plugin. Правильно понимаю, что это тот же файл, что и в кеше? Если так, не пойму логики: из двух копий файла, одна из которых в "свободном доступе", а вторая блокирована тебе нужен именно заблокированный? А если не так, то откуда уверенность, что в папке TMP вообще то, что тебе нужно? Ведь открыть и посмотреть нельзя ![]()
Стандартные средства ОС обеспечивают эксклюзивный доступ к файлу. Чтобы обойти это в любом случае "нужно прибегать к извращениям". |
||||
|
|||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |