Код работает правильно. Это не дает вам местоположение вашего исходного файла. Это дает вам текущий каталог, где работает ваша программа.
Я считаю, что вы запускаете программу из IDE, поэтому текущий каталог в этом случае является корневым каталогом вашего проекта.
Вы можете перечислить каталог src вашего проекта, вызвав new File("src").listFiles()
, но я не думаю, что вам действительно нужно это: когда вы компилируете и упаковываете свою программу, исходный и исходный каталог в любом случае недоступны.
Я думаю, что если вы хотите показать пользователю какую-то структуру каталогов, ваша программа должна получить корневой каталог в качестве параметра. Например, вы должны запустить вашу программу как
java -cp YOUR-CLASSPATH MyClass c:/root
Итак, все файлы в c:\root
будут доступны.