Мне нужно периодически перемещать некоторые файлы по ftp из системы Unix в систему Windows: «123_abc.pdf», «123_Abc.pdf», «345_cde.pdf».
Мне нужно использовать эти имена файлов в приложении Windows на C #, сохраняя различия в регистре.
Я предпочитаю не использовать файл метаданных, поэтому мое решение заключается в добавлении в строку уникального числа, представляющего вторую часть (после удаления):
123_abc.pdf -> 123_ABC_999999999.pdf (например, 999999999)
123_Abc.pdf -> 123_ABC_000000000.pdf
345_cde.pdf -> 345_CDE_123456789.pdf
затем переместите их по ftp и попробуйте восстановить оригинальное имя, чтобы сохранить его (имя) в базе данных.
Как мне сгенерировать это число? Функция должна быть обратимой (поэтому нет GetHashCode()
), поэтому во второй момент я могу:
- Сравните
f-1(999999999) == ABC
;
- Восстановить исходную строку, добавив первую часть строки к результату f-1:
"123_" + "abc" + ".pdf"
;
Моя первая идея:
MD5 md5Hasher = MD5.Create();
var hashed = md5Hasher.ComputeHash(Encoding.UTF8.GetBytes("ABC"));
var ivalue = BitConverter.ToInt32(hashed, 0);
РЕДАКТИРОВАТЬ: я не буду использовать чувствительные к регистру папки в Windows.
Спасибо