回覆列表
-
1 # 紅袖法師
-
2 # Ice2Faith
遞迴就行啊
簡單的JAVA實現
public static void mymkdirs(File dir,int deep)
{
if(deep<=0)
return;
if(dir.exist()==false)
dir.mkdirs();
for(int i=0;i<10;i++){
File pf=new File(dir,""+(i+1));
pf.mkdir();
mymkdirs(pf,deep-1);
}
}
呼叫:
mymkdirs(new File("D:\\test),10);
-
3 # 弓雖強但石更硬OK
別費勁了,電腦會宕機的,10層有多少個資料夾你算過嗎?想把每個資料夾都開啟一邊估計得很多年才行,你硬碟壞了都不一定打的完。
-
4 # 咚伊夏
import os
dir_path = "./1_10/"
for i in range(0, 10):
if not os.path.exists(dir_path):
os.makedirs(dir_path)
dir_path = dir_path + "1_10"
-
5 # 隨風飛701
遞迴唄。你沒說語言,我就說邏輯了。寫一個方法,傳入引數是層號和當前資料夾路徑,內容是1-10迴圈,迴圈內用index建子資料夾,然後如果層號小於10,那把當前層號加一和子資料夾路徑作為引數遞迴呼叫該方法。再外面寫個入口。這個問題感覺實際上並沒卵用。
從程式開發邏輯上來說,可以這樣寫。
以下內容是按照我對面向物件開發作為參考的表述,面向過程開發也可參考一下。此內容不提供具體開發程式碼,僅供邏輯參考。首先是確定實現目標和預計效果。目前已知資料夾套娃的效果如下:
假設第一層資料夾組為Dn[min:max],第二層資料夾組為第一層資料夾的逐個巢狀,即為:Dn[min(Dn[min:max]):max(Dn[min:max])],依次類推,三層巢狀便是:
Dn[min(Dn[min(Dn[min:max]):max(Dn[min:max])]):max(Dn[min(Dn[min:max]):max(Dn[min:max])])]
從中不難發現規律,即:Dn[min:max]
其中關於D資料夾名,n為編號,min和max為編號n的最取小值和最取大值,且均為整形。[min:max]是以數學的區間法表示的一種格式,即最小取值等於min,最大取值等於max的區間取值。
開發邏輯1、宣告三個整形變數,分別是資料夾名稱編號最小值、最大值和資料夾巢狀層值。2、根據上述所述規律,在程式執行時生成模板Dn_mod3、關於模板Dn_mod=(Dn[min:max]),即為第二層或以上層模板4、第一層由min和max數值透過迴圈指令直接建立(推薦使用For迴圈),同時一併原樣建立第二層的其中一個子集到特殊位置,即Dn_mod中。5、以上述規律類推,從第二層開始,一層一層利用迴圈逐個將Dn_mod放入每一層每一個子集中即可。關於迴圈設計問題:方法一:最直接的是使用固定多重迴圈巢狀指令,但此法在程式碼中提現過於笨拙,且指令巢狀量過大,程式設計效率很低。方法二:利用判斷累加的方法去做一個動態迴圈巢狀功能,即:設定一組固定的迴圈巢狀作為程式碼模組,讓後重復使用多次。方法三:設計一個動態迴圈巢狀層數控制模組,即:透過引數對迴圈巢狀層數進行動態控制。@靈魂編碼 原創,僅供參考,嚴禁不道德抄襲行為。