Size: a a a

2021 July 02

DH

Dark Hole in dlang.ru
Это делает проверку бессмысленной, что видимо имеет в виду тот челик. Все равно надо отлавливать ошибки.
источник

Е

Евгений in dlang.ru
Все равно не понимаю.
Допустим мой софт ничего не хочет знать о симлинках, он просто проверяет наличие файла и если его нет пересоздает его.
источник

EP

Egor Pugin in dlang.ru
для этого свою обёртку, если из стд не так работает
источник

Е

Евгений in dlang.ru
Да, но при этом все остальные функции из std.file следуют симлинками и только std.file.exists не следует.
источник

EP

Egor Pugin in dlang.ru
что-то не сложилось
источник

DH

Dark Hole in dlang.ru
С таким же успехом ты можешь его создать сначала, а если он существует отловить ошибку.
источник

Е

Евгений in dlang.ru
Ну так об этом и речь. Баг? Ошибка? Исправлять ее или уже поздно?
источник

Е

Евгений in dlang.ru
Это видимо автор ответа имел в виду в первом пункте.
источник

DH

Dark Hole in dlang.ru
Да
источник

Е

Евгений in dlang.ru
Но вообще странный подход. Особенно если мой софт не антивирус какой-то.
источник

Е

Евгений in dlang.ru
Чем плохо сначала проверить на существование, а потом создать если что? Страх, что какая-нибудь малварь что-нибудь напишет?
Так мой софт и не рассчитан на борьбу с малварью.
источник

EP

Egor Pugin in dlang.ru
я и говорю, в простом софте можно
источник

Е

Евгений in dlang.ru
Да почти в любом, кроме какого-то особо специализированного.
источник

EP

Egor Pugin in dlang.ru
в критичном просто папку подменят до файла, и он будет создан у злоумышленника
источник

DH

Dark Hole in dlang.ru
Думаю логика в том что по хорошему код дублируется а-ля:
if(!file.exists) {
 create_file(); // <=
}
try {
 open();
} catch(FileNotExists e) {
 create_file(); // <=
}
источник

Е

Евгений in dlang.ru
Но чем второй вариант лучше первого? По мне так первый лучше.
источник

Е

Евгений in dlang.ru
Или ты имеешь в виду, что надо вот так подряд писать? Зачем?
источник

Е

Евгений in dlang.ru
Ага. И для абсолютного большинства софта это не критично.
источник

Е

Евгений in dlang.ru
В любом случае, отвечающий куда-то в сторону пошел. Речь то не об этом.
источник

DH

Dark Hole in dlang.ru
Потому что у тебя могут удалить файл до того как ты его откроешь. Поэтому надо по-хорошему дублировать логику, но оно отменяет смысл в первой проверке.
источник