"Чёртова служба..." в Windows 7

Тема в разделе "WASM.SOFTWARE", создана пользователем CyberManiac, 16 янв 2010.

  1. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    На днях столкнулся с вот такой оборжакой. Скачал, значит, полсотни серий всемирно известного сериала "M.A.S.H." и собрался переложить их в более удобное место, чем папка Download. Окей, запускаю FAR, создаю папочку с именем "M.A.S.H.", в ней - ещё две папки, раскладываю в них файлы - всё ништяк. Потом дёрнуло меня перегрузиться в WinXP. В XP пытаюсь зайти в эту папку, получаю сообщение "А хрен тебе по всей морде!" Предполагаю, что опять права доступа, долбись они конём, недостаточные. Опять гружу Win7, клацаю свойства папки, лезу на вкладку, где все права. А вот нету там никаких прав! И вообще ничего нету, кроме красного кружочка с буквой Х и сообщения, что права недоступны или что-то типа того. Предполагаю, что к винту в гости пожаловал писец. Запускаю FAR, захожу в папку, потом в другую папку, по F3 файлы читаются без вопросов. Тихо слезаю с измен, переименовываю папку в просто MASH - все проблемы исчезают.

    Я понимаю, что глюк. И даже догадываюсь, примерно в чём. Но, блин, какого, извиняюсь, мужского полового органа, Win7 позволяет создать папку с не очень корректным именем (с точкой на конце), чтобы после этого отказаться с ней работать?!
     
  2. Blackbeam

    Blackbeam New Member

    Публикаций:
    0
    Регистрация:
    28 дек 2008
    Сообщения:
    960
    писали индусы а в их языке нет точик
     
  3. djmans

    djmans New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2006
    Сообщения:
    312
    мда, косячекс прикольный.
     
  4. Paguo_86PK

    Paguo_86PK Руслан

    Публикаций:
    0
    Регистрация:
    8 окт 2007
    Сообщения:
    911
    Адрес:
    Ташкент
    Одобряю подобные глюки:
    ИМХО - нефиг давать файлам дурацкие имена с кучей пробелов и точек.
    У меня на харде музыка хранится вот так:
    АгатаКристи КовёрВертолёт.mp3
    REM LosingMyReligion.mp3
    Desireless VoyageVoyage.flv
    McHammer UCantTouchThis.flv
    ...
    Компактно и понятно, гарантия от глюков. Не то что в дешёвых MP3-сборниках:
    153.Мультфильмы_-_Радиосигнал.mp3
    098.Токио_-_Кто_я_без_тебя.mp3

    Мне не лень было и я пару часов сидел и тупо всё перебивал в
    Мультфильмы Радиосигнал.mp3
    Токио КтоЯБезТебя.mp3
    и т.д...
     
  5. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    Paguo_86PK, мне вас жаль.
    имхо, система должна хендлеть любые фаелы и папки, есле не хендлет - глюк. :) криминала в папке с точками в имени не вижу, сам не раз такие создавал и нормально они открывались.
     
  6. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    Paguo_86PK
    давно хотел сказать "убейся об стену"
     
  7. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    CyberManiac
    А при чём тут win7? Папку с точками на конце можно создать и в XP, и в W7, не так ли? То, что эксплорер не умеет работать с такими папками – это следствие ограничения именоваемой подсистемы win32; Система же в целом, и ntfs в частности, обеспечивают поддержку большего множества именований. Т.е. эксплорер не работает корректно с папками с точкой на конце – однако из него такую папку и не создашь, насколько нам известно; Если же один игнорирует ограничения win32 и создаёт такую папку с помощью, скажем, Far'а, то подразумевается, что и работать с ней он будет из Far'а, и не удивляться, почему эксплорер показывает фе.
     
  8. edemko

    edemko New Member

    Публикаций:
    0
    Регистрация:
    25 ноя 2009
    Сообщения:
    454
     
  9. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    Sol_Ksacap
    Возможно, они эту шнягу не стали блокировать на самом верхнем уровне API на случай, если какие-нибудь извращенцы напишут дров для работы с хрюниксовыми разделами. Но почему, блин, в процессе создания файла именно на NTFS система не даёт отлуп? Там-то такие имена однозначно некорректны, поскольку не соответствуют правилам именования файлов от МС.
     
  10. paralvic

    paralvic Пархоменко Александр Викторович

    Публикаций:
    0
    Регистрация:
    20 ноя 2010
    Сообщения:
    294
    Адрес:
    Нижний Новгород
    Был под ХР прикол в ДОС режиме создал файл с кавычкой в имени "
    Система наотрез его отказывалась удалять
     
  11. Z3N

    Z3N New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2009
    Сообщения:
    812
    Paguo_86PK
    Мда, а воспользоваться какой-нибудь прогой для правки тегов не судьба? В том же фубаре можно всё переименовать файл было. Там что-то вроде принтфа можно использовать ....

    CyberManiac
    О, мне нравиться МЭШ, правда 5-6 сезоны не фонтан. А вас, что 2000 стоит?
     
  12. RET

    RET Well-Known Member

    Публикаций:
    17
    Регистрация:
    5 янв 2008
    Сообщения:
    789
    Адрес:
    Jabber: darksys@sj.ms
    FAR использует нативные ф-ции. А винда ф-ции API верхнего уровня.
    а внативе можно типа такого, например (тут частный случай для FAT-а):
    Код (Text):
    1. bool MkNoremoveDir(LPWSTR lpDirPathName)
    2. {
    3.         UNICODE_STRING NameU;
    4.         HANDLE DirectoryHandle;
    5.         IO_STATUS_BLOCK ioSB;
    6.         OBJECT_ATTRIBUTES ObjAttr;
    7.                       RtlInitUnicodeString(&NameU,lpDirPathName);
    8.                       wcscat(NameU.Buffer,L"\\..\\");
    9.         NameU.Length+=4*sizeof(WCHAR);
    10.                       InitializeObjectAttributes(&ObjAttr,&NameU,OBJ_CASE_INSENSITIVE,NULL,NULL);
    11.         if(NT_SUCCESS(NtCreateFile (&DirectoryHandle,FILE_LIST_DIRECTORY | SYNCHRONIZE | FILE_OPEN_FOR_BACKUP_INTENT,                                                               &ObjAttr,&ioSB,NULL,FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_READONLY,FILE_SHARE_READ,FILE_CREATE,FILE_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT,NULL,0)))
    12. {
    13. NtClose(DirectoryHandle);
    14.  return true;
    15. }
    16. return false;
    17. }
    18.  
    19. //Call example: MkNoremoveDir(L"\\??\\C:\\Noremove");