У меня есть консольное приложение, которое займет около 625 дней. Если есть способ сделать это быстрее.Ускоренный метод перемещения файлов, отличный от File.Move
Прежде всего, я работаю в каталоге, в котором есть около 4 000 000 файлов, если не больше. Я работаю в базе данных, которая содержит строку для каждого файла, а затем некоторую.
Теперь работа с SQL относительно быстро, узкое место, когда я использую File.Move()
, каждый ход занимает 18 секунд.
Есть ли более быстрый способ, чем File.Move()
?
Это узкое место:
File.Move(Path.Combine(location, fileName), Path.Combine(rootDir, fileYear, fileMonth, fileName));
Все другой код работает довольно быстро. Все, что мне нужно сделать, это переместить один файл в новое место и затем обновить поле местоположения базы данных.
Я могу показать другой код, если это необходимо, но на самом деле вышесказанное является единственным текущим узким местом.
Если вы используете базу данных в любом случае , зачем вам всего 4 000 000 файлов? –
@TimSchmelter Первоначально они разработали его. В базе данных хранится некоторая информация из файла, единственной частью, которую мне нужно обновить, является столбец «Местоположение». Эта колонка - это то, что говорит прикладной программе, которую они используют, где находится документ, чтобы открыть его. –
Если каждый шаг занимает 18 секунд, то что-то еще очень * неправильно, и это, вероятно, не ваше использование API. – cdhowie