ищет хорошее дизайнерское решение на Java для следующего требования
На основании типа файла, который может быть известен по имени файла, мы должны переместить файл в определенную общую папку, например, если файлэто zip-файл, который я должен переместить в «заархивированное» местоположение или, если это не zip-файл, то в другое место и т. д.
С помощью имени файла и расширения мы сможем узнать, какой это тип файлаи есть вероятность, что в будущем можно будет добавить больше правил, поэтому я хотел бы избежать сложных операторов if-else или switch
, например, если имя файла IN_MAH_MUM-_20190306162024X_CANCER.xml, это неzip-файл и содержит слово «CANCER», следовательно, он перейдет в папку «CANCERFILES»
, в основном для эффективного сопоставления типов файлов и местоположений папок
нижеэто пример
Типы файлов
- Сжатые Переместить в папку «Сжатые»
- Разархивироватьed
- Medical
- CancerFiles Перейдите в папку «CancerFiles»
- CardioFiles
- OrthoFiles
- Non Medical
- FinancialFiles
- OccupationFiles
Код для сопоставления - получение значений из файла json
Map<String,String> mapFileTypeLocations = new HashMap();
mapFileTypeLocations.put(fileTypes.getAsJsonObject().get("cardioTypeFiles").getAsJsonArray().toString(),locations.getAsJsonObject().get("cardioFilesLocation").getAsString());
mapFileTypeLocations.put(fileTypes.getAsJsonObject().get("financeTypeFiles").getAsJsonArray().toString(),locations.getAsJsonObject().get("financeFilesLocation").getAsString());
Это сопоставление может не соответствоватьработать эффективно, если требование требует добавления большего количества условий, таких как основанные на часовом поясе, коде страны, коде города, которые являются частью имени файла