台灣最大程式設計社群網站
線上人數
1426
 
會員總數:246209
討論主題:189782
歡迎您免費加入會員
討論區列表 >> ASP >> 抓路徑檔案 記憶體不足
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
抓路徑檔案 記憶體不足
價值 : 20 QP  點閱數:911 回應數:2
樓主

jimmy413
門外漢
0 5
119 2
發送站內信

我想要抓出路徑底下的所有檔案包含子目錄的
但我設定的路徑如過直接用根目錄的路徑 執行會變成
記憶體不足
想請問 是哪邊產生了無限迴圈啊?





<%
dim TemporaryFiles()

function GetFiles(Path, FileCount)
Path=("/up/file/111/5")
set fs = Server.CreateObject("Scripting.FileSystemObject")
realfilepath = (Server.Mappath(Path))
if fs.FolderExists(realfilepath) = true then
response.write("存在")&"<br>"
set folder = fs.GetFolder(realfilepath)
'將目前資料夾下的檔案名稱放入陣列
for each f in folder.files
redim preserve TemporaryFiles(2, FileCount+1)
TemporaryFiles(0, FileCount) = Path & "/" & f.Name
TemporaryFiles(1, FileCount) = f.Name
FileCount = FileCount + 1
next

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''子目錄
' 繼續找有沒有子資料夾, 有的話, 遞迴掃裡面的檔案和資料夾
for each subfolder in folder.SubFolders
call GetFiles(Path & "/" & subfolder.Name, FileCount)
next
set folder = nothing
else
redim TemporaryFiles(2, 1)
TemporaryFiles(0, 0) = ""
TemporaryFiles(1, 0) = "The path is not exist !"
end if

set fs = nothing
GetFiles = TemporaryFiles


end function
''''''''''''''''''''''''''''''''''''''''''''
' 呼叫 function
FileArray = GetFiles("",0)
for i = 0 to ubound(FileArray,2)
response.write FileArray(0,i) &"<br>"
response.write FileArray(1,i) &"<br>"

next
%>


搜尋相關Tags的文章: [ 讀取資料夾 ] , [ 記憶體不足 ] , [ 無限迴圈 ] ,
本篇文章發表於2015-04-23 17:51
1樓
最有價值解答

老頑童
捐贈 VP 給 老頑童 檢舉此回應
Path=("/up/file/111/5")
為什麼這一行會在function?

若是這邊的path底下還有子目錄
那跑遞迴時,每次仍然會跑相同的path
然後就一直進入遞迴再回到原來的path,一直鬼打牆跑不完
不是應該在呼叫時設給它嗎
FileArray = GetFiles("/up/file/111/5",0)
function堨u要捉帶進來的參數即可
本篇文章回覆於2015-04-24 10:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

jimmy413
檢舉此回應
感謝 老頑童大 我在這裡鬼打牆了一段時間 因為公司須要 以前又沒學過 感謝!
本篇文章回覆於2015-04-27 13:51
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.