Page 20 of 20

Re: NTFS

Posted: Thu Mar 08, 2018 2:09 am
by Leency
При попытке удалить видеофайл "Минусы Windows 10 и пара плюсов.mp4" размером 135 Мб выдает, что функция не поддерживается. Файл не сжат и не зашифрован.

Причина в этом http://prntscr.com/ioarng ?

Re: NTFS

Posted: Fri Mar 09, 2018 12:48 am
by Pathoswithin
Трудно сказать, в NTFS очень много нагорожено. Если считать все мелочи, то не поддерживается сейчас больше, чем поддерживается.

Re: NTFS

Posted: Mon Oct 15, 2018 8:34 pm
by Leency
Pathoswithin
Можешь сделать поддержку длинного тире "—" и украинских букв?

Вот сейчас записал фильм "Ричард Фейнман- Характер физического закона. Лекция #1. Пример физического закона — закон тяготения.mp4" и не могу его посмотреть :(

Re: NTFS

Posted: Tue Oct 16, 2018 9:34 am
by Pathoswithin
А при чём здесь NTFS? Уже давно сделал — сисфункция 80.
Если кто сравнивает с виндой, то там ср1251, а у нас ср866.

Re: NTFS

Posted: Wed Oct 17, 2018 5:19 pm
by 0CodErr
Leency wrote:поддержку длинного тире "—" и украинских букв
Что-то подобное уже обсуждалось http://board.kolibrios.org/viewtopic.ph ... =15#p67402
Там предлагались некоторые варианты.
Pathoswithin wrote:Если кто сравнивает с виндой
В винде FindFirstFile и FindNextFile работают со структурой TWIN32FINDDATA, в которой есть cAlternateFileName.
Для имени "Димна Суміш - О Боже Мій" имя в формате 8.3 будет "ДИМНАС~1", а если вывести имя в консоль, то вывод будет такой "Димна Сум_ш - О Боже М_й".
Файл остаётся доступен по имени "ДИМНАС~1".
Просто сравнил.

Re: NTFS

Posted: Wed Oct 17, 2018 7:07 pm
by Pathoswithin
Если кто продолжает сравнивать с виндой, то у нас ещё есть драйвер файловой системы ext, которая вообще не хранит имя в формате 8.3
К тому же в нашей структуре изначально нет ничего вроде cAlternateFileName...

Re: NTFS

Posted: Wed Oct 17, 2018 10:24 pm
by Siemargl
Возможное решение - утилита, которая использует сисфункцию 80 и переименовывает по каким то правилам или в заданное неюникодное имя.

Проблема только в отсутствии подфункции переименования - придется копировать (

Re: NTFS

Posted: Thu Oct 18, 2018 9:16 am
by Pathoswithin
http://board.kolibrios.org/viewtopic.php?f=1&t=3545
Только NTFS пока не поддерживает.

Re: NTFS

Posted: Sat Dec 04, 2021 2:56 am
by Leency
Почему в функции 80 кодировка +20, а путь +24.
Почему не наоборот? Тогда можно было бы иметь одну структуру под обе функции 70 и 80.

Re: NTFS

Posted: Sat Dec 04, 2021 4:09 am
by Leency
Разбираюсь с функцией 80. Я указал кодировку для чтения папки и для вывода строки. Почему не работает?

Re: NTFS

Posted: Mon Dec 06, 2021 7:03 pm
by Leency
Leency wrote:Разбираюсь с функцией 80. Я указал кодировку для чтения папки и для вывода строки. Почему не работает?
Разобрался. Я потратил около 3-4 часов.

Не работало по двум причинам:
1. Размер структуры BDVK для файла в CPP 304 байта, а в UTF 520. Моя ошибка.
2. Для функции чтения папки 80 кодировку нужно указывать в двух местах О_о Верхняя видимо на получение данных, а нижняя на строку пути. Документация ещё на функцию 80 такова, что е тупо нет - это ссылка на ф70 в обих чертах, но в чём различие не очевидно.

Re: NTFS

Posted: Fri Sep 30, 2022 8:33 am
by victor653
Как здесь уже писали выше, файлы со спецсимволами в названии доступны, когда у них есть имя в ms-dos формате 8.3
Image
Сложность в том, как узнать эти 8.3 имена. Пока что алгоритм такой:
1. В Windows XP через Volkov Commander посмотреть имена нужных файлов.
2. Записать соответствие вручную в текстовый файл, как на скриншоте. Имя папки я сделал без спецсимволов, иначе некоторые даже виндовые программы не откроют.
3. Осталось как-то открыть файл. OpenDialog не позволяет ввести имя файла, но через команду "Запуск программы" Win+R это можно сделать.

Хорошо бы иметь какой-нибудь способ посмотреть 8.3 имена прямо в Колибри. Может быть, он уже есть, а я туплю и не нашёл?

И ещё: файлы, созданные в Колибри, не видны в Volkov Commander (только при удалении папки предупреждение, что она не пуста). Похоже, из-за отсутствия этих самых 8.3 имён. Сложно ли это исправить? При установке винды я всегда обнуляю NtfsDisable8dot3NameCreation.

Re: NTFS

Posted: Wed Jul 12, 2023 3:08 pm
by Doczom
Найдена проблема в работе драйвера. При использовании сисфункции 70.3, которая должна заменять часть файла, часть файла по смещению выше чем записываемый блок удаляется. Тестирование производил на ноутбуке, где основная ос виндовс 10.
На скриншоте файл открыт в HEX редакторе до и после выполнения замены.
Spoiler:
SCR_bug_ntfs_70.3.PNG
SCR_bug_ntfs_70.3.PNG (68.07 KiB)
Viewed 7759 times

Re: NTFS

Posted: Fri Jul 14, 2023 11:35 pm
by Pathoswithin
Просмотрел код. Да, похоже функция всегда устанавливает размер файла в каталоге, а должна только увеличивать. Так тестировали, что заметили только сейчас. Видимо непопулярный расклад. Только я уже много лет не занимался программированием, сам не исправлю...

Если что, там всего-то нужно сделать сравнение перед строкой 3481 в ntfs.inc, это должно исправить ошибку для файлов более 1 Кб, но вот на счёт файлов менее 500 байт возможно кое-что ещё...

Re: NTFS

Posted: Tue Jul 18, 2023 2:40 pm
by Pathoswithin
Если точнее, нужно вставить вместо строк 3481 и 3482 что-то вроде этого:

Code: Select all

	cmp	edx, [edi+fileRealSize+4]
	jc	@f
	jnz	.resize
	cmp	[edi+fileRealSize], eax
	jnc	@f
.resize:
	mov	[edi+fileRealSize], eax
	mov	[edi+fileRealSize+4], edx
@@:
... и протестировать крупные и мелкие файлы.