저장할 폴더가 없으면 폴더를 생성하여
파일명이 중복되면 끝에 _1 _2 와 같이 숫자를 늘려가면서 복사하는 코드
Private Sub C1Button2_Click(sender As Object, e As EventArgs) Handles C1Button2.Click
'업로드 - 다른 이름으로 저장
Dim strDest As String = "W:\Scan\" '서버(다른 PC) 폴더명 - 수정할 것
Dim i As ListViewItem
Dim strFolder As String
Dim strFilename As String
Dim strExtention As String
Dim strFullName As String
Dim FileName As String
'저장할 폴더가 없으면 생성하기
If (Not Directory.Exists(strDest)) Then Directory.CreateDirectory(strDest)
'업로드할 파일이 하나 이상 있을 때 코드 실행
If lvView.Items.Count > 1 Then
For Each i In lvView.Items
'리스트뷰 순환하며 파일명 가져오기
With i
strFolder = .SubItems(0).Text & "\"
strFilename = .SubItems(1).Text
strExtention = .SubItems(2).Text
End With
FileName = strFilename & strExtention
strFullName = strFolder & FileName '파일명 풀네임
'중복 체크하면서 파일을 지정한 폴더에 복사
File.Copy(strFullName, FileExistIncrementer(strDest & FileName))
Next i
MsgBox("업로드가 완료되었습니다.")
End If
End Sub
Public Shared Function FileExistIncrementer(ByVal OrginialFileName As String) As String
'중복된 파일 있을 때 파일명 변경
'1.jpg 가 존재하면 1_1.jpg로 바꿔서 업로드
Dim counter As Integer = 0
Dim NewFileName As String = OrginialFileName
While File.Exists(NewFileName)
counter = counter + 1
NewFileName = String.Format("{0}\{1}_{2}{3}", Path.GetDirectoryName(OrginialFileName), Path.GetFileNameWithoutExtension(OrginialFileName), counter.ToString(), Path.GetExtension(OrginialFileName))
End While
Return NewFileName
End Function
'VB(A)' 카테고리의 다른 글
[VB.net] 폼에 드래그 하여 파일 주소 얻기 (0) | 2016.07.14 |
---|---|
[VB.net] 리스트뷰에서 제목열 클릭 시 오름/내림차순 정렬 (0) | 2016.07.13 |
[VB.net] 리스트뷰에서 항목 선택 시 썸네일 생성 (0) | 2016.07.13 |
[VB.net] 리스트뷰에서 선택한 리스트를 삭제 (0) | 2016.07.13 |
[VB.net] 파일 선택 후 리스트뷰에 종류별로 분할하여 출력하기 (0) | 2016.07.13 |