전통문화대전망 - 건강 문화 - .net에서 폴더의 모든 파일을 가져오는 방법을 알려주세요.

.net에서 폴더의 모든 파일을 가져오는 방법을 알려주세요.

수업을 보내고 추가 포인트를 받는 것을 잊지 마세요

System 사용;

System.IO 사용;

System.Text 사용 ;

System.Data 사용;

/******************************** ***** ********************************************* ****** ***

*

* 기능 설명: 파일 작업 클래스

* 작성자:

* 버전 :

*

* ********************************* ****** ******************************************/

// /lt;summarygt;

/// 파일 작업 클래스

/// lt;/summarygt;

공용 클래스 FileObj: IDisposable

{

private bool _alreadyDispose = false;

#region 생성자

public FileObj()

{

//

// TODO: 여기에 생성자 논리를 추가합니다.

//

}

~FileObj( )

{

Dispose();

}

protected virtual void Dispose(bool isDisposing)

{

if (_alreadyDispose) return;

//if (isDisposing)

//{

/ / if (xml != null)

// {

// xml = null

// }

// }

_alreadyDispose = true;

}

#endregion

#region IDisposable 멤버

public void Dispose ()

{

Dispose(true)

GC.SuppressFinalize(this)

}

#endregion

#region 파일 접미사 가져오기

/************

******************************

* 함수 이름: GetPostfixStr

* 함수 설명: 파일 접미사 이름 가져오기

* 매개변수: filename: 파일 이름

* 목록 호출:

* string filename = "aaa.aspx" ;

* 문자열 s = EC.FileObj.GetPostfixStr(파일 이름)

********************** * ******************/

/// lt; summarygt;

/// 접미사 이름 가져오기

p>

/// lt;/summarygt;

/// lt;param name="filename"gt;파일 이름lt;/paramgt;

/// lt ; returngt;.gif|.html formatlt;/returnsgt;

public static string GetPostfixStr(string filename)

{

int start = filename.LastIndexOf( ".");

int length = filename.Length;

string postfix = filename.Substring(start, length - start);

return postfix;

}

#endregion

#region 파일 이름 가져오기

/**************** ***** ***************************

* 함수 이름: GetFileName

* 함수 설명: 파일 이름 가져오기

* 매개 변수: filename: 파일 이름

* 목록 호출:

* string filename = "aaa.aspx ";

* 문자열 s = EC.FileObj.GetFileName(파일 이름);

********************* ****** ******************/

/// 요약gt

/// 가져오기 파일 이름

/ // lt;/summarygt;

/// param name="filename"gt;

Namelt;/paramgt;

/// lt;returnsgt;파일 이름lt;/returnsgt;

public static string GetFileName(string fileUrl, string dir)

{

return fileUrl.Substring((fileUrl.Length - dir.Length) gt; fileUrl.Length ? 0: dir.Length)

}

#endregion

#region 쓰기 파일

/******************************** * *************

* 함수명 : WriteFile

* 함수 설명 : 파일을 쓰면 이전 내용을 덮어씁니다

* 매개변수: 경로: 파일 경로, 문자열: 텍스트 내용

* 통화 목록:

* string Path = Server.MapPath("Default2.aspx")

p>

* string Strings = "내가 쓴 내용입니다.";

* EC.FileObj.WriteFile(Path, Strings);

*** ** ************************************/

/// lt ;summarygt;

///파일 쓰기

/// lt;/summarygt;

/// lt;param name="Path"gt; 파일 경로 lt;/paramgt;

/// lt;param name="Strings"gt;파일 내용lt;/paramgt;

public static void WriteFile(string Path, string Strings )

{

if (!System.IO.File.Exists(경로))

{

System.IO.FileStream f = System.IO.File.Create(Path);

f.Close();

}

System.IO.StreamWriter f2 = 새 시스템 .IO.StreamWriter(경로, false, System.Text.Encoding.GetEncoding("gb2312"));

f2.Write(Strings);

f2.Close();

> f2.Dispose();

}

#endregion

#region 읽기 파일

/******* *********************************

* 함수명 : ReadFile

* 함수 설명: 텍스트 내용 읽기

* 매개변수: 경로: 파일 경로

* 호출 목록:

* string Path = Server.MapPath (" Default2.aspx");

* string s = EC.FileObj.ReadFile(경로);

*************** ** ****************************/

/// 요약gt; // /파일 읽기

/// lt;/summarygt;

/// lt;param name="Path"gt;파일 경로lt;/paramgt;

/// lt; returngt; lt; returngt;

public static string ReadFile(string Path)

문자열 s = "" ;

if (!System.IO.File.Exists(Path))

s = "해당 디렉터리가 존재하지 않습니다."

else

{

StreamReader f2 = new StreamReader(Path, System.Text.Encoding.GetEncoding("gb2312"))

s = f2.ReadToEnd();

p>

f2.Close();

f2.Dispose();

}

return s;

}

#endregion

#region 추가 파일

/******************** ****** ******************

* 함수명 : FileAdd

* 함수 설명 : 파일 내용 추가

* 매개변수: 경로: 파일 경로, 문자열: 내용

* 통화 목록:

* string Path = Server.MapPath("Default2.aspx")

;

* string Strings = "새 추가 콘텐츠";

* EC.FileObj.FileAdd(Path, Strings); *************************************/

/// lt; summarygt;

///파일 추가

/// lt;/summarygt;

/// lt;param name="Path"gt;파일 pathlt ;/paramgt;

/// lt;param name="strings"gt;contentlt;/paramgt;

public static void FileAdd(string Path, string strings)

p>

{

StreamWriter sw = File.AppendText(Path)

sw.Write(strings)

sw.Flush();

sw.Close();

}

#endregion

#region 복사 파일

/* ***************************************

* 기능 이름: FileCoppy

* 기능 설명: 파일 복사

* 매개 변수: OrignFile: 원본 파일, NewFile: 새 파일 경로

* 호출 목록:

* string orignFile = Server.MapPath("Default2.aspx");

* string NewFile = Server.MapPath("Default3.aspx")

* FileObj .FileCoppy(OrignFile, NewFile);

********************************** * ******/

/// lt; summarygt;

/// 파일 복사

/// lt < / p>

/// lt; param name="OrignFile"gt; /paramgt

/// lt; 새 파일 경로 ;

public static void FileCoppy(string orignFile, string NewFile)

> {

File.Copy(orignFile, NewFile, true);

}

#endregion

#region 파일 삭제

p>

/******************************************

* 함수 이름: FileDel

* 함수 설명: 파일 삭제

* 매개변수: 경로: 파일 경로

* 호출 목록:

p >

* string Path = Server.MapPath("Default3.aspx")

* EC.FileObj.FileDel(Path); * ************************************/

/// lt; summarygt;

/// 파일 삭제

/// lt;/summarygt;

/// lt; ;/ paramgt;

public static void FileDel(string Path)

{

File.Delete(Path);

}< /p >

#endregion

#region 파일 이동

/************************ ***** ***************

* 기능명 : 파일이동

* 기능설명 : 파일이동

* 매개변수: OrignFile: 원래 경로, NewFile: 새 파일 경로

* 호출 목록:

* string orignFile = Server.MapPath("../Description.txt") ;

* string NewFile = Server.MapPath("../../Description.txt")

* EC.FileObj.FileMove(OrignFile, NewFile)

p>

********************************************/

/// lt;summarygt;

/// 파일 이동

/// lt;/summarygt;

/// lt ;param name=" OrignFile"gt;원래 경로lt;/paramgt;

/// lt;param 이름

="NewFile"gt; 새 경로lt;/paramgt;

public static void FileMove(string orignFile, string NewFile)

{

File.Move( orignFile , NewFile);

}

#endregion

#region 현재 디렉토리에 디렉토리 생성

/***** ***********************************

* 함수명 : FolderCreate

* 기능 설명: 현재 디렉터리 아래에 디렉터리 생성

* 매개 변수: OrignFolder: 현재 디렉터리, NewFloder: 새 디렉터리

* 통화 목록:

* string orignFolder = Server.MapPath("test/");

* string NewFloder = "new"

* EC.FileObj.FolderCreate(OrignFolder, NewFloder);

*****************************************/

/// lt; summarygt;

/// 현재 디렉토리에 디렉토리 생성

/// lt; p > /// lt;param name="OrignFolder"gt;현재 디렉터리lt;/paramgt;

/// lt;param name="NewFloder"gt;새 디렉터리lt;/paramgt;

p>

public static void FolderCreate(string orignFolder, string NewFloder)

{

Directory.SetCurrentDirectory(orignFolder);

Directory.CreateDirectory( NewFloder );

}

#endregion

#region은 폴더, 디렉터리 및 파일을 반복적으로 삭제합니다.

/****** * *********************************

* 기능명 : 폴더삭제

* 기능 설명: 폴더, 디렉터리, 파일을 반복적으로 삭제

* 매개변수: dir: 폴더 경로

* 호출 목록:

* string dir = 서버.MapPat

h("테스트/");

* EC.FileObj.DeleteFolder(dir)

****************** ***********************/

/// lt; summarygt;

/// 재귀 삭제 폴더 디렉터리 및 파일

/// lt;/summarygt;

/// lt;param name="dir"gt;lt;/paramgt;

/// lt; returngt;

public static void DeleteFolder(string dir)

{

if (Directory.Exists( dir) )) //이 폴더가 있으면 삭제하세요.

{

foreach (Directory.GetFileSystemEntries(dir)의 문자열 d)

{

if (File.Exists(d))

File.Delete(d); //파일을 직접 삭제합니다.

else

DeleteFolder (d ); //하위 폴더를 재귀적으로 삭제

}

Directory.Delete(dir); //빈 폴더 삭제

}

}

#endregion

#region 지정된 폴더 아래의 모든 내용을 대상 폴더에 복사합니다. 대상 폴더에 읽기 전용 속성이 있는 경우 오류가 보고됩니다.

/******************************************

* 함수명 : CopyDir

* 함수 설명 : 지정된 폴더 아래의 모든 내용을 대상 폴더에 복사합니다. 대상 폴더에 읽기 전용 속성이 있으면 오류가 발생합니다. 보고됩니다.

* 매개변수: srcPath: 원래 경로, aimPath: 대상 폴더

* 호출 목록:

* string srcPath = Server.MapPath("test/ ") ;

* string aimPath = Server.MapPath("test1/")

* EC.FileObj.CopyDir(srcPath, aimPath); *****************************************/

/ // lt; summarygt;

/// 지정된 폴더에 있는 모든 내용을 대상 폴더에 복사합니다.

///

/ // lt;param name="srcPath"gt;원래 경로lt;/paramgt;

/// lt;param name="aimPath"gt;대상 폴더lt;/paramgt;

public static void CopyDir(string srcPath, string aimPath)

{

try

{

// 대상 디렉토리인지 확인 그렇지 않은 경우 추가하세요.

if (aimPath[aimPath.Length - 1] != Path.DirectorySeparatorChar)

aimPath = Path.DirectorySeparatorChar; p>

// 대상 디렉터리가 존재하는지 확인합니다. 존재하지 않으면 새 디렉터리를 만듭니다.

if (!Directory.Exists(aimPath))

디렉터리. CreateDirectory(aimPath) ;

//파일과 디렉터리 경로가 포함된 배열인 소스 디렉터리의 파일 목록을 가져옵니다.

//복사본 아래의 파일을 가리키는 경우 디렉터리를 포함하지 않고 대상 파일 다음 방법을 사용하십시오.

//string[] fileList = Directory.GetFiles(srcPath);

string[] fileList = Directory.GetFileSystemEntries(srcPath) ;

//모든 파일과 디렉터리를 탐색합니다.

foreach (fileList의 문자열 파일)

{

//대상을 먼저 고려합니다.

디렉터리 처리에서 이 디렉터리가 존재하면 디렉터리 아래의 파일을 반복적으로 복사합니다.

if (Directory.Exists(file))

CopyDir(file, aimPath Path.GetFileName(file ));

// 그렇지 않으면 파일을 직접 복사합니다.

else

File.Copy(file, aimPath Path.GetFileName(file), true);

}

}

catch (예외 ee)

{

throw new Exception(ee.ToString( ));

}

}

#endregion

#region 폴더 읽기

/*** ** *************************************

* 기능 이름: ShowFolder

* 기능 설명: 폴더 내용 표시

* 매개변수: dir: 폴더 경로

* 목록 호출:

* string dir = Server.MapPath("test/");

* EC.FileObj.DeleteFolder(dir)

************** **** *************************/

/// 요약gt; > /// 폴더 내용 표시

/// lt;/summarygt;

/// lt;param name="dir"gt;lt;/paramgt;

/// lt; returngt; lt; / returngt;

public static DataTable ShowFolder(string dir)

{

DataTable dt = new DataTable() ;

DataRow dr;

dt.Columns.Add("fname", typeof(string));

dt.Columns.Add( "fType" , typeof(string));

string[] Folders = System.IO.Directory.GetDirectories(dir);

string[] files = 시스템

m.IO.Directory.GetFiles(dir);

for (int i = 0; i lt; Folders.Length; i )

{

dt .Rows.Add(GetFileName(Folders[i], dir), "폴더")

}

for (int i = 0; i lt; files.Length; i )

{

dt.Rows.Add(GetFileName(files[i], dir), "files")

}

dt를 반환;

}

#endregion

}