Imports System.IO Imports System.Threading Imports System.Data Module Mod_Delete 'Public Sub DeleteFile() ' DeleteFileFromList() 'End Sub 'Public Sub DeleteFileFromList() '//파일목록으로부터 삭제대상폴더의 파일을 삭제한다. ' Dim FileList As New ArrayList ' Dim FI() As FileInfo ' Dim Di As DirectoryInfo ' If MsgBox("파일삭제작업을 진행하시겠습니까?", MsgBoxStyle.Information + MsgBoxStyle.OkCancel, "삭제확인") <> MsgBoxResult.Ok Then ' MsgBox("취소되었습니다", MsgBoxStyle.Information, "확인") ' Return ' End If ' '//파일목록을 작성합니다. ' MSG("삭제 진행중...") ' MDiMain.pbar2.Minimum = 0 ' MDiMain.pbar2.Maximum = Ep ' MDiMain.Refresh() ' Addlog2("삭제시작 줄번호 범위 " & SP & " ~ " & Ep, True) ' Dim NullCnt As Short = 0 ' Dim fn As String ' For i As Integer = SP To Ep ' MDiMain.pbar2.Value = i ' If i Mod 10 = 0 Then ' MSG("삭제중 (" & i & "/" & Ep & ")") ' MDiMain.Refresh() ' End If ' fn = Frm_srcfile.Get_FileList(i + 1) & Mod_Comm.GetExtendFromMdi.Trim("*") ' If fn.Trim <> "" Then ' NullCnt = 0 '//파일을 삭제하는 루틴을 만든다. ' Di = New DirectoryInfo(GetWorkDIr) '//경로선택 ' FI = Di.GetFiles(fn, GetSubdirType) ' If FI.Length < 1 Then ' addlog("X", fn, "", "파일없음") ' End If ' For Each F As FileInfo In FI '//일치하는 모든 파일을 삭제한다. ' If F.FullName.IndexOf("-원본") = -1 Then '//백업이 만들어놓은 폴더의 파일은 제낀다. ' Fileok.Add(F.FullName) '//정상파일목록을 가진다. ' addlog("O", F.FullName, "", "삭제") ' If Mod_Comm.GetExeType Then ''//모의실행은 백업및 작업을 하지않는다. ' '//백업정책을 확인해서 해당 파일을 백업할곳을 결정한다. ' Check_Backup(F, BakTag) ' F.Delete() ' End If ' End If ' Next ' Else ' NullCnt += 1 ' If NullCnt = 5 Then '//빈줄이나올때 널카운트를 증가시키고 빈줄이 5번연속나올때는 빠져나온다. ' Exit For ' End If ' End If ' Next ' Addlog2("삭제작업이 완료되었습니다") ' 'Frm_Wait.Hide() 'End Sub Public Sub DeleteFileM(Param As RunParam) '//파일목록으로부터 삭제대상폴더의 파일을 삭제한다. '//파일목록을 작성합니다. MDiMain.MSG("삭제목록 작성중...") '//변수목록 Dim NR As ireaDataSet.WorkListRow Dim WRow() As ireaDataSet.FileListRow Dim index As Integer = 0 Dim endcnt As Integer = MDiMain.DataSet1.SrcList.Rows.Count - 1 If MDiMain.DataSet1.SrcList Is Nothing Then MsgBox("원본목록이 존재하지않습니다." & vbCrLf & "진행할 수 없습니다", MsgBoxStyle.Information, "확인") Return End If For Each drs As ireaDataSet.SrcListRow In MDiMain.DataSet1.SrcList.Rows '//원본목록회전 If MDiMain.DataSet1.SrcList Is Nothing Then MsgBox("파일목록이 존재하지않습니다." & vbCrLf & "진행할 수 없습니다", MsgBoxStyle.Information, "확인") Return End If index += 1 Application.DoEvents() MDiMain.ShowCnt1(index, endcnt, "목록작성") '//전체목록에서 원본목록 검색 WRow = MDiMain.DataSet1.FileList.Select("파일명 like '" & drs.목록명 & "'") If WRow.Length = 0 Then Addlog("X", drs.목록명, "", "파일없음") For Each dr As ireaDataSet.FileListRow In WRow '//일치하는 목록들 작업목록에 집어넣는다. NR = MDiMain.DataSet1.WorkList.NewWorkListRow NR.원본경로 = dr.경로 NR.원본파일명 = dr.파일명 NR.구분 = "삭제" NR.대상경로 = dr.경로 NR.대상파일명 = dr.파일명 NR.오류 = "" If NR.대상파일명.IndexOf("*") = -1 AndAlso NR.대상파일명.IndexOf("?") = -1 Then Try MDiMain.DataSet1.WorkList.Rows.Add(NR) Catch ex As Exception '//추가오류는 뻔하다이미 그 파일이 있는경우다. NR.오류 = "중복된 삭제대상파일입니다(" & Format(Now, "HHmmss") & ")" MDiMain.DataSet1.WorkList.Rows.Add(NR) makelog2("중복된 삭제대상파일이 생성되었습니다") makelog2(" 파일명 : " & NR.원본경로 & "\" & NR.원본파일명) 'If MsgBox("중복된 대상파일이 확인되었습니다" & vbCrLf & vbCrLf & "계속하시겠습니까?", MsgBoxStyle.Information Or MsgBoxStyle.OkCancel, "확인") <> MsgBoxResult.Ok Then ' Return 'End If End Try End If Next Next MDiMain.MSG("삭제목록 작성완료...") 'If GetExeType() Then '//실제실행일경우 ' DeleteFileR() 'Else '//모의실행일경우 ' Addlog2("모의실행 : 실제 복사/이동/삭제는 수행되지 않습니다") ' MsgBox("모의실행입니다" & vbCrLf & "실제파일의 복사/이동/삭제 는 수행되지 않습니다", MsgBoxStyle.Information, "확인") 'End If End Sub Public Sub DeleteFileR(winhide As Boolean) '//실제로 파일을 삭제합니다. 삭제시 성공여부를 기록합니다 Dim FI As FileInfo Dim Err As Boolean = False MDiMain.MSG("파일삭제 준비중") Dim index As Integer = 0 Dim endcnt As Integer = MDiMain.DataSet1.WorkList.Rows.Count - 1 If MDiMain.DataSet1.WorkList Is Nothing Then MsgBox("작업파일목록이 존재하지않습니다." & vbCrLf & "진행할 수 없습니다", MsgBoxStyle.Information, "확인") Return End If For Each Dr As ireaDataSet.WorkListRow In MDiMain.DataSet1.WorkList.Rows index += 1 MDiMain.ShowCnt1(index, endcnt, "파일삭제") Application.DoEvents() If Dr.오류 <> "" Then Errlog("선오류감지되어서 넘어갑니다(" & Dr.오류 & ")") Else Try FI = New FileInfo(CStr(Dr.원본경로 & "\" & Dr.원본파일명).Replace("\\", "\")) Check_Backup(FI, BakTag) If FI.Exists = False Then Dr.오류 = "파일없음" Try FI.Delete() Dr.성공 = "O" Dr.오류 = "" Catch ex As Exception Err = True Dr.성공 = "X" Dr.오류 = ex.Message.ToString() End Try Catch ex As Exception Err = True Dr.성공 = "X" Dr.오류 = ex.Message Errlog("FI = New FileInfo(CStr(Dr.원본경로 &)" & ex.Message.ToString) End Try End If Next MDiMain.MSG("파일 [삭제] 완료" & IIf(Err, "(일부파일에 오류가 발생하였습니다", "")) End Sub End Module