Информация об изменениях

Сообщение Re[12]: std::filesystem::copy_file и права от 11.07.2025 18:11

Изменено 11.07.2025 18:31 B0FEE664

Re[12]: std::filesystem::copy_file и права
Здравствуйте, ·, Вы писали:

·>Ок. Тогда: Скопировать файл рядом с новым именем и переименовать, перезаписав старое. Если переименование обломалось, удалить старое, переименовать опять.

Да. я буду делать именно так, но тут надо понимать, что это не оптимальный вариант, так как в этом случае может не хватить места.

·>Мне неизвестна файловая система в которой есть операция операция "проверить можно ли открыть файл на чтение без открытия файла".

Ладно, я переформулирую вопрос. Я не хотел спрашивать "можно ли открыть файл на чтение без открытия файла". Я спрашиваю: есть ли у исполняемого кода такие права, что позволяют открыть указанный файл на чтение.

·>Почему ты хочешь, чтобы такое было в std::filesystem — неясно. И главное — как оно в принципе может быть реализовано и для чего использовано (написание бажных ненадёжных программулек не в счёт).

Надо просто сравнить права, с которыми исполняется приложение, с правами файла. Что в этом сложного и зачем при этом открывать файл?

·>А что по-твоему делает операция копирования файла?

Копирует файл. Как она это делает — дело десятое и может зависить от чего угодно: от файловой системы, от операционной системы, от драйвера, от устройства. ЕМНИП DVD-ROM можно было организовать так, что при записи одинаковых файлов создаётся "hard link" вместо копирования файла, файловая система поддерживала. Я вполне могу представить файловое хранилище в облаке, которое просто увеличивает счётчик у файла и прописывает имя к каталог. Поэтому для меня даже копирование файла и копирование содержимого файла — это две разные операции, не говоря уж о вводе-выводе.
Re[12]: std::filesystem::copy_file и права
Здравствуйте, ·, Вы писали:

·>Ок. Тогда: Скопировать файл рядом с новым именем и переименовать, перезаписав старое. Если переименование обломалось, удалить старое, переименовать опять.

Да. я буду делать именно так, но тут надо понимать, что это не оптимальный вариант, так как в этом случае может не хватить места.

·>Мне неизвестна файловая система в которой есть операция операция "проверить можно ли открыть файл на чтение без открытия файла".

Ладно, я переформулирую вопрос. Я не хотел спрашивать "можно ли открыть файл на чтение без открытия файла". Я спрашиваю: есть ли у исполняемого кода такие права, что позволяют открыть указанный файл на чтение.

·>Почему ты хочешь, чтобы такое было в std::filesystem — неясно. И главное — как оно в принципе может быть реализовано и для чего использовано (написание бажных ненадёжных программулек не в счёт).

Надо просто сравнить права, с которыми исполняется приложение, с правами файла. Что в этом сложного и зачем при этом открывать файл?

·>А что по-твоему делает операция копирования файла?

Копирует файл. Как она это делает — дело десятое и может зависить от чего угодно: от файловой системы, от операционной системы, от драйвера, от устройства. ЕМНИП DVD-ROM можно было организовать так, что при записи одинаковых файлов создаётся "hard link" вместо копирования файла, файловая система поддерживала. Я вполне могу представить файловое хранилище в облаке, которое просто увеличивает счётчик у файла и прописывает имя в каталог. Поэтому для меня даже копирование файла и копирование содержимого файла — это две разные операции, не говоря уж о вводе-выводе.