File tempDir;
tempDir = File.createTempFile("mda", ".temp");
tempDir.delete();
tempDir.mkdir(); // Noncompliant
Приведенный выше код сгенерирует словарь, подобный 'mda3249275551502192003.temp', но сначала он сгенерирует файл, а затем удалит его.У меня возникла проблема с сонаром, такая как «Использование File.createTempFile в качестве первого шага при создании временного каталога, вызывает состояние гонки и является по своей природе ненадежным и небезопасным. Вместо этого Files.createTempDirectory (Java 7+) или библиотечная функция, такая как Guava, аналогичнос именем Files.createTempDir. "Предлагаемое решение заключается в следующем.Но createTempDirectory принимает только префикс и генерирует что-то вроде 'mda3249275551502192003', но я хочу 'mda3249275551502192003.temp'
Compliant Solution
Path tempPath = Files.createTempDirectory("mda");
File tempDir = tempPath.toFile();