Управление прикрепленными файлами с одинаковыми именами и разным содержимым

Я извлекаю вложения из папки «Входящие», «Отправить», «Черновики» и т. Д. почты. И сохраняем их в папке.

Используя приведенную ниже логику:

Как получить доступ к вложениям из почты Notes?

Но проблема, с которой я столкнулся, здесь. Вложение того же типа и имени, но разное содержание. В текущей ситуации это замена старого файла новым.

Как я могу однозначно управлять этим вложением для разных писем.


person Preeti    schedule 02.10.2009    source источник


Ответы (3)


Вы можете использовать File.Exists (путь), чтобы проверить, существует ли файл перед извлечением, и если он существует, добавьте что-нибудь к имени, чтобы сделать его уникальным.

person Carlos    schedule 05.10.2009

Есть несколько способов:
1) Всегда генерировать случайное имя файла для каждого вложения (отрицательным моментом является то, что вы будете использовать "больше" места для хранения
2) Сгенерируйте хэш, например SH-256 содержимого файла , и дайте ему имя после этого (минус здесь - хеширование может занять некоторое время, в зависимости от размера файла)

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

person EKS    schedule 02.10.2009

Еще несколько идей:

  • Вы можете добавить уникальный идентификатор документа Notes к имени файла. Тогда у вас также будет способ определить, из какого документа Notes был получен файл.

  • Раньше я поступал так же, как и большинство программ. Я добавил _x к имени файла, где x - это число. Таким образом, если бы было три файла с одинаковыми именами, они бы отображались в папке как file.txt, file_1.txt, file_2.txt.

person Ken Pespisa    schedule 02.10.2009