Граблі дитячі
Feb. 11th, 2014 10:02 pmСьогодні раптово виявив що у хаскелевій System.Directory немає функції переміщення файлу. Є тільки перейменування.
Різниця суттєва: неможливо перейменувати файл так що нове розташування знаходиться на іншому фізичному пристрої. Помилка приблизно така:
rename: unsupported operation (Invalid cross-device link)
Вихід, звісно, простий:
moveFile :: FilePath -> FilePath -> IO()
moveFile source dest = copyFile source dest >> removeFile source
Різниця суттєва: неможливо перейменувати файл так що нове розташування знаходиться на іншому фізичному пристрої. Помилка приблизно така:
rename: unsupported operation (Invalid cross-device link)
Вихід, звісно, простий:
moveFile :: FilePath -> FilePath -> IO()
moveFile source dest = copyFile source dest >> removeFile source