Искам да създам файл, ако и само ако този файл не съществува.
Като пример за файлово местоположение се отнася до "C:\user\Desktop\dir1\dir2\filename.txt"
if (!file.exists()) {
try {
file.createNewFile();
} catch(IOException ioe) {
ioe.printStackTrace();
return;
}
}
За съжаление горният код е неуспешен, тъй като dir1
и dir2
не съществуват.
За моя случай
- Понякога dir1 и dir2 може да съществуват, а понякога може да не съществуват.
- Не искам да презаписвам съдържанието на тези междинни директории, ако вече съществуват,
Как да проверя това чисто?
Мислех да добавя следната проверка, за да се справя с това условие:
if (!file.getParentFile().getParentFile().exists()) {
file.getParentFile().getParentFile().mkdirs();
}
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
if (!file.exists()) {
try {
file.createNewFile();
} catch(IOException ioe) {
ioe.printStackTrace();
return;
}
}
Или има по-ясно решение от това?
exists()
.mkdirs()
ще създаде директория само ако не съществува. - person Rohit Jain   schedule 11.02.2014FileOutputStream
илиFileWriter,
, единствената част, която е необходима, е часттаmkdirs()
. - person user207421   schedule 12.02.2014