반응형
* 파일 복사 예제
전체 소스 코드
Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace CSharp_FileCopy
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//첫번째 방법
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
if (ofd.ShowDialog() == DialogResult.OK)
{
label3.Text = ofd.FileName;
}
}
private void button2_Click(object sender, EventArgs e)
{
string strDestFolder = "C:\\FileCopy\\DEST1";
System.IO.FileInfo fi = new System.IO.FileInfo(label3.Text);
//fi.Name = > 파일이름 가져 오기 즉 복사할려는 폴더안에 원본 파일 이름과 같이 복사...
System.IO.File.Copy(label3.Text, strDestFolder + "\\" + fi.Name);
label4.Text = strDestFolder + "\\" + fi.Name + " 복사 완료";
}
//==============================================================================================================================================
//두번째 방법
private void button3_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
if (ofd.ShowDialog() == DialogResult.OK)
{
label5.Text = ofd.FileName;
}
}
private void button4_Click(object sender, EventArgs e)
{
string strDestFolder = "C:\\FileCopy\\DEST2";
System.IO.FileInfo fi = new System.IO.FileInfo(label5.Text);
//버퍼 크기
int iBufferSize = 1024;
long lSize = 0;
//총 파일 크기 얻기
long lTotalSize = fi.Length;
//버퍼 크기만큼 바이트 배열 선언
byte[] bTmp = new byte[iBufferSize];
//프로그래스바 셋팅
pbValue.Minimum = 0;
pbValue.Maximum = (int)lTotalSize;
System.IO.FileStream fsRead = new System.IO.FileStream(label5.Text, System.IO.FileMode.Open);
System.IO.FileStream fsWrite = new System.IO.FileStream(strDestFolder + "\\" + fi.Name, System.IO.FileMode.Create );
while (lSize < lTotalSize)
{
int iLen = fsRead.Read(bTmp, 0, bTmp.Length);
lSize += iLen;
fsWrite.Write(bTmp, 0, iLen);
//진행 상태
pbValue.Value = (int)lSize;
}
//파일 연결 해제...
pbValue.Value = pbValue.Maximum ;
fsWrite.Flush();
fsWrite.Close();
fsRead.Close();
label7.Text = strDestFolder + "\\" + fi.Name + " 복사 완료";
}
}
}
* 첫번째 방법 부분 소스 코드 및 결과
* 두번째 방법 부분 소스 코드 및 결과
프로그래바 구현으로 진행 상태 까지 나타내기
[C#] 폴더 및 파일, 드라이브 사이즈 (Size) 구하기
[C#] File Create & Delete & Read & Write 예제
반응형
'C# Programming' 카테고리의 다른 글
[C#] Log File - 로그 작성 예제 (0) | 2019.10.14 |
---|---|
[C#] 파일 및 폴더 감시 (FileSystemWatcher) (0) | 2019.10.10 |
[C#] 프로그램 중복 실행 방지 (0) | 2019.10.06 |
[C#] Delay 함수 (0) | 2019.10.04 |
[C#] 폴더 및 파일, 드라이브 사이즈 (Size) 구하기 (0) | 2019.10.02 |