Файловый навигатор

Work with drives, directories, files
  • Pathoswithin wrote:содержимого cmake
    Siemargl wrote: из https://cmake.org/download/ берем архив cmake-3.7.1-win32-x86.zip
    Хмм, я что-то не нахожу там 3.7.1, но есть 3.7.2.
    Ага, вон там есть https://cmake.org/files/v3.7/
  • Проверил в VirtualBox.
    Создал 2 tmp-диска по 60 Mb каждый.
    Разархивировал внутри колибри с помощью KFAR с /cd2/1 на /tmp1/1.
    Копировал с помощью fNav с /tmp1/1 на /tmp0/1.
    Успешно. Ошибок не было.
    1.PNG
    1.PNG (16.45 KiB)
    Viewed 7634 times
  • Не, всё таки ошибка при копировании на ext2 (cmake-3.7.2). Но все равно не понятно: Shell копирует, KFAR копирует, Eolite вроде тоже...
  • Ну только размер буфера другой.
  • Не, с разным размером буфера одинаково, тут что-то ещё. Папки создаёт, а на первом же файле EOF. Что он вообще делает при копировании файла?
  • Сначала создаётся(SysFn70.2) пустой файл нулевой длины.
    Проверяется возвращаемый результат, если <> 0, то Error.
    Ну а потом в цикле ReadFile + WriteFile.

    Попробуй, кстати, GenFiles ещё. Она только создаёт файлы.
  • Ага! Таки fnav. При создании файла нужно обнулять смещение, для ext это важно.
  • Pathoswithin wrote:нужно обнулять смещение
    Но зачем?
    Вообще-то SysFn70.2 это Create|Rewrite.
    Хотя, если это только создание, то оно действительно обнуляется, как я и писал выше
    0CodErr wrote:Сначала создаётся(SysFn70.2) пустой файл нулевой длины.
    Примерно как в GenFiles http://websvn.kolibrios.org/filedetails ... m#line-213
    Ты пробовал GenFiles?
  • Как ты любишь говорить, так в документации написано. Может кто-то захочет, чтоб я сделал возможность создания файлов с записью данных с указанного места. А по факту, там общий код с 70.3.
    Обнуляется не всегда. Я сделал вывод на доску с 70.2 и когда ошибка - там не ноль.
  • Pathoswithin wrote:Может кто-то захочет, чтоб я сделал возможность создания файлов с записью данных с указанного места.
    В данном случае не имеет значения, с какого места. Потому что вот тут

    Code: Select all

      * +12 = +0xC: dword: number of bytes to write
    значение равно нулю. То есть, по факту я ничего и не собирался никуда писать. Поэтому Count = 0.
    Если в других ФС проблем нет, то надо просто добавить для ext проверку типа "If Count = 0 ..."
  • Для данного случая исправил, но всё равно то что зарезервировано должно быть равно нулю. Я подумал, будет полезно сделать возможность создавать пустой файл указанного размера, без использования 70.4.
  • Так оно зарезервировано для Rewrite, потому что запись идёт с начала файла(смещение 0), а Create вообще не должна учитывать эти поля, так как для Create они просто не нужны(и зачем только они проверялись в ext?).
    Pathoswithin wrote:возможность создавать пустой файл указанного размера, без использования 70.4
    Тогда надо будет нулями заполнять. По аналогии
    if size difference is up to 16 MB, new space will be cleared with 0.
    А почему там, кстати, такое ограничение 16 Mb?
  • У 70 функции есть ещё и общее описание структуры. У NTFS тоже Rewrite и Write используют общий код. Ну и написано довольно чётко: 0 (зарезервировано).

    Я ограничил, потому что нехорошая функция получается: максимальный размер файла ограничен только у FAT, а в остальных ФС можно задать размер 100 ГБ - вот уж где раздел действительно зависнет, если столько обнулять. Да и смысл такой функции в том, чтоб быстро создать большой файл, а потом писать в него данные.
  • Такая хотела, сделать поддержку системного масштабируемого шрифта. Желательно с возможностью ручного задания коэффициента масштабирования, или использование системной переменный, и выбор между этими вариантами
    to infinity and beyond
  • Who is online

    Users browsing this forum: No registered users and 0 guests