View Issue Details

IDProjectCategoryView StatusLast Update
0003445Far ManagerViewerpublic2017-06-15 09:51
ReportermarcheloAssigned To2useven10 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionwon't fix 
Platformx64OSWindowsOS Version10
Product Version3.0 
Target VersionFixed in Version 
Summary0003445: Viewer отставляет открытым FileHangler
DescriptionПри открытии файла через Viewer, Far оставляет открытым File Handler.
Это можно проверить через Process Explorer (Sysinternals)

Такое поведение мешает некоторым сторонним ПО обращаться к файлу, хотя Far и не блокирует запись в файл.

Подобное поведение не наблюдается при открытии файла через Editor.
Steps To Reproduce1. Скачать https://technet.microsoft.com/en-us/sysinternals/bb896653 и запустить
2. Создать файл с каким-то уникальным именем, например, testhndl.txt
3. Открыть файл нажав F3
4. Перейти в Process Explorer
5. Нажать Find -> Find Handle or DLL...
6. Вести в поле поиска название файла, например, testhndl.txt
7. Получить указание на Handle

Для сравнения с Editor
1. Открыть файл нажав F4
2. Перейти в Process Explorer
3. Нажать Find -> Find Handle or DLL...
4. Вести в поле поиска название файла, например, testhndl.txt
5. Указание на Handle не будет.
Additional InformationВсе опыты проводились досконально на версии FAR 64-bit, и соотвественно использовался 64-bit Process Explorer.

Тем не менее в 32 битной версии наблюдается так же поведение.
TagsViewer
Build0

Activities

2useven10

2017-06-15 09:23

developer   bugnote:0015429

Да оставляет, пока просмотр не закончен. И это вряд ли будет изменено.
Вьювер не грузит файл в память, как делает редактор.

marchelo

2017-06-15 09:26

reporter   bugnote:0015430

Можно ли это сделать настройкой?
Проблема возникает при забытых открытых файлах и стороннее ПО входит в конфликт.

2useven10

2017-06-15 09:38

developer   bugnote:0015431

Last edited: 2017-06-15 09:38

View 2 revisions

Нет.
Вьювер часто используется для просмотра больших файлов, грузить их в память слишком затратно.
Кроме того он постоянно отслеживает не изменился ли файл - можно, например, просматривать онлайн запись в конец файла.
Файл открывается с минимальными ограничениями для 'стороннего по'
ViewFile.Open(name,
 FILE_READ_DATA,
 FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, nullptr, OPEN_EXISTING
);
если это по при этом конфликтует - избавьтесь от него.

marchelo

2017-06-15 09:40

reporter   bugnote:0015432

Поясню, можно ли сделать галку - Load File into memory в Настройках Viewer.
Это сильно поможет на системах, где конфликт доступа не желателен.

Большие файлы уже не такая проблема, т.к. зачастую их нет. В любом случае это подконтрольно пользователю.

marchelo

2017-06-15 09:41

reporter   bugnote:0015433

> если это по при этом конфликтует - избавьтесь от него.
Если бы это не ПО так сказать монополиста.

2useven10

2017-06-15 09:50

developer   bugnote:0015434

Повесьте примитивный макрос на F3 и вызывайте вместо просмотра редактор (F4).
Или не забывайте выходить из просмотра.

Issue History

Date Modified Username Field Change
2017-06-15 08:49 marchelo New Issue
2017-06-15 08:50 marchelo Tag Attached: Viewer
2017-06-15 09:23 2useven10 Note Added: 0015429
2017-06-15 09:26 marchelo Note Added: 0015430
2017-06-15 09:38 2useven10 Note Added: 0015431
2017-06-15 09:38 2useven10 Note Edited: 0015431 View Revisions
2017-06-15 09:40 marchelo Note Added: 0015432
2017-06-15 09:41 marchelo Note Added: 0015433
2017-06-15 09:50 2useven10 Note Added: 0015434
2017-06-15 09:51 2useven10 Build => 0
2017-06-15 09:51 2useven10 Status new => closed
2017-06-15 09:51 2useven10 Assigned To => 2useven10
2017-06-15 09:51 2useven10 Resolution open => won't fix