C# 나를 배려했던 5가지 방법
초보자를 위한 성능총 무시 방법
초보자라도 코드를 쉽게 이해할 수 있는데, 방법의 단위가 확실히 작기 때문에 올해 관심을 받은 방법들.
그러나 처리 속도는 한 번도 고려한 적이 없고 기능만 실현했으면 좋겠다는 간단한 응용 방법이다.
응용 프로그램에서 흔히 볼 수 있는 5가지 방법
파일 존재 확인
파일을 처리하는 프로그램을 만들 때 반드시 사용해야 한다.
대상 서류가 없으면 원래 처리가 잘 안 되기 때문에 오류를 알리지 않으면 괜히 고민하게 된다.
처리 대상 파일이 있어야 하는 프로그램을 만들 때도 조심스럽게 넣는다.
/// <summary>
/// 指定したファイルが存在するか判定を行う</summary>
/// <param name="fullFilePath">
/// 検索するファイルのフルパス</param>
/// <returns>
/// 存在した場合:true、ない場合:false</returns>
public static Boolean IsTargetFileExit(string @fullFilePath)
{
if (System.IO.File.Exists(fullFilePath)) return true;
return false;
}
폴더가 없는 경우
폴더의 제작은 물론이고 프로그램이 새로운 환경에서 실행될 때도 이 방법을 통해 필요한 작업 폴더를 자동으로 생성할 수 있어 폴더 등 잊어버리기 쉬운 오류가 없는 것을 방지할 수 있어 매우 편리하다.
/// <summary>
/// 指定したパスが存在しない場合、全てのディレクトリとサブディレクトリを作成</summary>
/// <param name="fldPath">
/// 作成するフォルダ</param>
public static DirectoryInfo SafeCreateDirectory(string @fldPath)
{
try
{
if (Directory.Exists(fldPath)) return null;
return Directory.CreateDirectory(fldPath);
}
catch (Exception ex)
{
logger.Error("ディレクトリの作成に失敗しました。");
logger.Error(ex.Message + "\r\n" + ex.StackTrace);
throw;
}
}
CSV 파일 읽기
이 방법은 언뜻 보면 이해하기 쉬운 것을 중시하기 때문에 사용하는 데이터형에 쓸모없는 메모리와 처리 속도가 느릴까 봐 걱정할 수밖에 없다.
다만, CSV 파일을 읽어 내용 출력을 약간 변환하고 싶을 때 자주 사용할 수 있다.
/// <summary>
/// CSVファイルの全データ読み込み</summary>
/// <param name="fullFilePath">
/// 読み込むCSVのフルパス</param>
/// <returns>
/// string[][]</returns>
public static string[][] Loadcsv(string @fullFilePath)
{
List<string[]> list = new List<string[]>();
TextFieldParser parser = new TextFieldParser(fullFilePath, Encoding.GetEncoding("SHIFT_JIS"));
logger.Info("処理対象ファイル:" + fullFilePath);
try
{
// カンマ区切りの指定
parser.TextFieldType = FieldType.Delimited;
parser.SetDelimiters(",");
// フィールドが引用符で囲まれているか
parser.HasFieldsEnclosedInQuotes = true;
while (!parser.EndOfData)
{
// 1行読み込み
string[] column = parser.ReadFields();
list.Add(column);
}
return list.ToArray();
}
catch (Exception ex)
{
logger.Error("CSVファイルの読み込みに失敗しました。");
logger.Error(ex.Message+"\r\n"+ ex.StackTrace);
throw;
}
finally
{
parser.Close();
}
}
문자 코드 변환
주로 SJIS에서 UTF-8로 변환하려는 경우에 사용됩니다.
사용하지 않는 것 같은데 의외로 사용하고 있어요.
/// <summary>
/// 文字コード変換(SJIS→"destEnc"で指定した文字コード)</summary>
/// <param name="src">
/// 変換したい文字列(SJIS)</param>
/// <param name="destEnc">
/// 変換後の文字コード</param>
public static string ConvertEncoding(string src, Encoding destEnc)
{
byte[] src_temp = Encoding.GetEncoding("SHIFT_JIS").GetBytes(src);
byte[] dest_temp = Encoding.Convert(Encoding.GetEncoding("SHIFT_JIS"), destEnc, src_temp);
string ret = destEnc.GetString(dest_temp);
return ret;
}
폴더의 모든 파일 삭제
처리된 원자재 파일이 필요 없을 때 등 작업 폴더 안의 파일을 지울 때 사용한다.
백업이 안 됐다는 우려도 있었지만 자신도 잘 보지 못했고 삭제 작업도 번거로워 기본적으로 원본을 삭제했다.
/// <summary>
/// 指定したフォルダ内のファイルをすべて削除</summary>
/// <param name="fldPath">
/// 削除するフォルダパス</param>
public static void DelFiles(string fldPath)
{
DirectoryInfo di = new DirectoryInfo(fldPath);
foreach (FileInfo file in di.GetFiles())
{
file.Delete();
}
}
이상은 개인이 자주 사용하는 5가지 방법이다.최후
처음에도 썼지만 초보자를 대상으로 하고 코드의 이해성을 중시하기 때문에 기술적인 일은 따뜻한 눈으로 보세요.
Reference
이 문제에 관하여(C# 나를 배려했던 5가지 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/shamotaro/articles/e7b636c0daa27a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)