copyFileSyn c против writeFileSync - PullRequest
1 голос
/ 09 июля 2020

Я работаю над манипуляциями с файлами и наткнулся на это.

Пытался найти ответ в Интернете, но не нашел хорошего, точного ответа.

Какой из них является более оптимизированным копирования файла?

readFileSync() -> writeFileSync()?

Или напрямую

copyFileSync()?

Также заметил, что copyFileSyn c использует временную метку исходного файла. Если copyFileSync() более оптимизирован, есть ли способ использовать «метку времени копирования»?

Спасибо!

1 Ответ

0 голосов
/ 09 июля 2020

Сначала вам нужно знать, что чтение содержимого файла, а затем его запись в другой файл - это не то же самое, что копирование файла, файл - это больше, чем просто его необработанное содержимое, почти все файлы имеют связанные с ними метаданные, и когда вы читаете содержимое файла и записываете его в место назначения, вы теряете эти метаданные. Поэтому, если вы хотите скопировать файл, используйте метод copyFile, иначе вам придется обрабатывать метаданные самостоятельно.

Во-вторых, два метода теоретически должны иметь одинаковую сигнатуру производительности, хотя на практике может быть различия между ними в разных условиях (разные операционные системы, разные размеры файлов), однако беспокойство по этому поводу - скорее преждевременная оптимизация. Однако для повышения производительности лучше использовать асинхронные c версии этих методов.

copyFileSyn c не позволяет напрямую изменять дату создания файла, но вы можете сделать это, используя fs.stat

...