iT邦幫忙

0

請教眾高手,如何題取For ...Each ...IN...Next裡的資料.(請使用vb.net),,,謝謝.

請教一下 :

目的是,刪除過期檔案,並將被刪除的檔案名稱,mail給特定人,,因此撰寫了程式(下為部分程式)如下,,((我想提取For ...Each ...IN...Next裡的資料)),目前的狀況是,過期資料可以被刪除,但是就是想不出要如何將"所有被刪除的檔案之名稱"列表寄出.

Try
Dim direInfo As New DirectoryInfo(path)
'取得此目錄的所有檔案名稱(不含資料夾)
Dim filNames As FileInfo() = direInfo.GetFiles(".")

        For Each inos As FileInfo In filNames
            '刪除目錄下所有過期的檔案 
            If inos.LastWriteTime < delDate Then
                ''問題出在這-->如何將inos.fullname的資料轉出
                File.Delete(inos.FullName) ''此行是刪除過期資料,是OK的.
            End If
        Next
    Catch ex As Exception
        Dim Err As String = ex.ToString()

End Try

TB iT邦新手 4 級 ‧ 2018-09-11 18:03:50 檢舉
可以用這個 Collection
https://dotblogs.com.tw/yc421206/archive/2009/01/25/6941.aspx

在 for each 內刪除時把用 Add() 把 inos.fullname 記錄進 List
就能夠記錄哪些是被刪除的了
KennyL iT邦新手 5 級 ‧ 2018-09-11 18:10:46 檢舉
可以麻煩您將程式碼寫出來嗎?(宣告及函數要如何運用?)謝謝~~
watercool iT邦新手 5 級 ‧ 2018-09-12 12:14:59 檢舉
在迴圈外面宣告一個array(C#用LIST比較好操作,VB我就不知道了),在File.Delete(inos.FullName)把這個FullName加入array中,再把array return 出去,這應該不難寫的,google一下array或LIST的用法,在自己寫一個吧,這樣寫出來的code才真正是你的,不然只是複製貼上的話,下次遇到這問題還是會卡住

1 個回答

0
pcw
iT邦研究生 4 級 ‧ 2018-09-11 18:05:02

宣告一個陣列,把inos.FullName存進去。
或者是宣告一個字串變數,把inos.FullName串接進去

dim str as string
...
For Each inos As FileInfo In filName
    If inos.LastWriteTime < delDate Then
        File.Delete(inos.FullName)
        str = inos.FullName & "|" & str   
    End If
Next
...
KennyL iT邦新手 5 級 ‧ 2018-09-11 18:11:09 檢舉

可以麻煩您將程式碼寫出來嗎?(宣告及函數要如何運用?)感激~~

小魚 iT邦高手 1 級 ‧ 2018-09-11 19:17:26 檢舉

C#可以使用List類別,
VB應該也可以吧.

另外如果你需要人家給你完整的程式碼,
那我建議你不要走這一行...

我要發表回答

立即登入回答