View Issue Details

IDProjectCategoryView StatusLast Update
0000761Far ManagerFile Systempublic2009-05-05 08:45
ReporterDiRTy_GaRRyAssigned ToDrKnS 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Platformx86OSWindowsOS Version2003 SP2
Product Version 
Target VersionFixed in Version2.0 
Summary0000761: Не совсем корректная работа с папками оканчивающимися на "."
DescriptionFar не совсем корректная работа с папками оканчивающимися на ".", то есть:
1. В такую папку нельзя зайти;
2. Для такой папки по Ctrl+A не корректно получаются атрибуты:
  - крыжики для всех атрибутов выставлены;
  - под именем отображается надпись "ссылка (нет данных)", причём на FAT32 тоже.
3. Не работает измеение атрибутов папки (измененеие дады/времени работает);

Может ещё чего не работает, но это всё что я накопал на перывй взгляд.
Steps To ReproduceСоздаём папку оканчивающуюся на несколько символов ".", например "test....".
TagsNo tags attached.
Build798

Relationships

has duplicate 0000788 closedalexy Far Manager 1.7x не получается войти в папку с точкой на конце в названии 
has duplicate 0000824 closed Far Manager Невозможно перейти в каталог с точкой на конце 
has duplicate 0000953 closed Far Manager создание каталогов, оканчивающихся точкой 

Activities

DiRTy_GaRRy

2009-02-25 22:23

developer   bugnote:0002600

Last edited: 2009-02-25 22:29

2 и 3 правятся приложенным патчем. GetFullPathNameW почему то не нравится слэш в конце путей с такими папками. Он отрезает одну точку.

Правда таки не мешало бы как то обрабатывать ситуацию, когда GetFileAttributes возвращает ошибку.

С 1, по ходу дела, до избавления от SetCurrentDirectory/GetCurrentDirectory пока в морг. Хотя каким то магическим образом после некоторых скачек с бубном оно у меня заходит в такую папку, но потом опять же таким же магическим образом перестаёт это делать.

2009-02-25 22:30

 

far_dot_folders.patch (596 bytes)
Index: setattr.cpp
===================================================================
--- setattr.cpp	(revision 2635)
+++ setattr.cpp	(working copy)
@@ -635,9 +635,7 @@
       {
 				if (!DlgParam.Plugin && !IsSlash(strSelName.At(strSelName.GetLength()-1)))
         {
-          string strCopy = strSelName;
-          AddEndSlash(strCopy);
-					FileAttr=apiGetFileAttributes(strCopy);
+					FileAttr=apiGetFileAttributes(strSelName);
         }
         //_SVS(SysLog(L"SelName=%s  FileAttr=0x%08X",SelName,FileAttr));
         AttrDlg[SETATTR_SUBFOLDERS].Flags&=~DIF_DISABLE;
far_dot_folders.patch (596 bytes)

DrKnS

2009-02-25 23:25

administrator   bugnote:0002602

798.

Про 1:

у меня заходит только если в конце больше одной точки.

если одна - никак.

alexandr_v

2009-02-26 10:47

reporter   bugnote:0002611

Last edited: 2009-02-26 10:56

Из последнего SDK, статья "Naming a File"
"
Do not end a file or directory name with a trailing space or a period. Although the underlying file system may support such names, the operating system does not. You can start a name with a period (.).
".

Может надо запретить создавать каталоги с точкой в конце?
Explorer не дает создать такой каталог.

Кстати SetCurrentDirectory дает ошибку с кодом 2 - файл не найден, вместо ошибки с кодом 3 - путь не найден.

Наверно проверяет наличие папки как "folder.NUL".

DiRTy_GaRRy

2009-02-26 10:48

developer   bugnote:0002612

Ну запретить то можно, а вот пытаться работать с ними всё равно надо.

alexandr_v

2009-02-26 10:54

reporter   bugnote:0002613

Last edited: 2009-02-26 10:55

попробовал сделать junction на такую папку ( test->test.) - работает.
если в той же папке есть каталог с таким же именем но без точки, то заходит в каталог без точки.

DiRTy_GaRRy

2009-02-26 11:00

developer   bugnote:0002614

Ну да. Я это всё проверял. Работает всё, кроме захода в папку. А трюк с джюнкшионами — это стандартный путь для обхода проблем со всякими левыми папками (пробелы в конце, точки в конце, путь больше MAX_PATH).

Issue History

Date Modified Username Field Change
2009-02-25 17:57 DiRTy_GaRRy New Issue
2009-02-25 20:38 DrKnS Status new => assigned
2009-02-25 20:38 DrKnS Assigned To => DrKnS
2009-02-25 22:23 DiRTy_GaRRy Note Added: 0002600
2009-02-25 22:29 DiRTy_GaRRy Note Edited: 0002600
2009-02-25 22:30 DiRTy_GaRRy File Added: far_dot_folders.patch
2009-02-25 23:25 DrKnS Note Added: 0002602
2009-02-25 23:25 DrKnS Status assigned => feedback
2009-02-26 10:47 alexandr_v Note Added: 0002611
2009-02-26 10:47 alexandr_v Note Edited: 0002611
2009-02-26 10:48 DiRTy_GaRRy Note Added: 0002612
2009-02-26 10:50 alexandr_v Note Edited: 0002611
2009-02-26 10:54 alexandr_v Note Added: 0002613
2009-02-26 10:55 alexandr_v Note Edited: 0002611
2009-02-26 10:55 alexandr_v Note Edited: 0002613
2009-02-26 10:56 alexandr_v Note Edited: 0002611
2009-02-26 11:00 DiRTy_GaRRy Note Added: 0002614
2009-03-14 11:55 DrKnS Relationship added has duplicate 0000788
2009-04-13 10:17 DiRTy_GaRRy Relationship added has duplicate 0000824
2009-05-05 08:45 DrKnS Build => 798
2009-05-05 08:45 DrKnS Status feedback => closed
2009-05-05 08:45 DrKnS Resolution open => fixed
2009-05-05 08:45 DrKnS Fixed in Version => 2.0
2009-07-01 08:00 DrKnS Relationship added has duplicate 0000953