سلام. لطف کنید به کد زیر توجه کنید:
import java.io.File;
public class Main {
public static void main(String[] args) {
String dir = "E:" + File.separator + "Test" + File.separator + "Files" + File.separator
+ "non-empty";
// delete folder recursively
recursiveDelete(new File(dir));
}
public static void recursiveDelete(File file) {
if (!file.exists()) {
return;
}
// if directory, go inside and call recursively
if (file.isDirectory()) {
for (File f : file.listFiles()) {
// call recursively
recursiveDelete(f);
System.out.println("recursively");
}
}
file.delete();
System.out.println("Deleted file/folder: " + file.getAbsolutePath());
}
}
شرط if چک میکند که آیا فایل مورد بررسی دایرکتوری است یا خیر. اگر نباشد از بلاک if خارج شده و کدهای زیر اجرا میشود:
file.delete();
System.out.println("Deleted file/folder: " + file.getAbsolutePath());
اما بعد از اجرای کدهای فوق، برنامه دوباره وارد حلقهی for داخل بدنهی if میشود. بنده متوجه این موضوع نمیشوم. چرا وقتی که از بدنه if و حلقه for خارج شده، دوباره وارد میشود؟