์๋
ํ์ธ์!!
๋ค ์ง์ฅ์ธ 2๋
์ฐจ ๋ด๋น์
๋๋ค, ์ ๋ฐฐ๋๋ค ์ ๋ถํ๋๋ฆฝ๋๋ค! ^โ^
์ ๋ ์ ์กฐ์
ํ์ฌ์ ์ฌ์ง์ค์ด๋ฉฐ C# ์ ํ์ฉํด ๋ฌผ๋ฅ ์ด๋์ด๋ ์ํํ์ ๋ฑ ๊ฐ๋จํ(?) ์์
์ ํ๊ณ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ํ๋ก๊ทธ๋จ์์๋ Timer ๋ฅผ ํตํด ๋ฌผ๋ฅ ๊ด๋ จ ํญ๋ชฉ์ Logging ์์
์ผ๋ก ์์
์ ์ ์ฅํ๊ณ ์์ต๋๋ค.
- ๋ฌด์์ ํ๊ณ ์ ํ๋์ง
ํ๋ก๊ทธ๋จ์์ Logging ์์ ์ ํ๋ฉด์ ์์ ์๊ฐ ํด๋น Excel ํ์ผ์ ๊ฐ์ญ์์ด ์ด๋ํ๊ณ ์ถ์ต๋๋ค.
- ํ์ฌ ์์ฑํ ์ฝ๋ ์ค ๋ฌธ์ ๊ฐ ๋๋ ๋ถ๋ถ
๊ธฐ์กด ์ฝ๋
using (swSave = new StreamWriter(strFilePath, true, Encoding.UTF8))
{
swSave.WriteLine(strBld);
}
-
using ๋ฌธ์ ํ์ฉํด swSave(StreamWriter) ๋ฅผ ์์ฑํ์ฌ ๊ฒฝ๋ก(strFilePath) ์ ๋ฐ์ดํฐ(strBld) ๋ฅผ Write ํฉ๋๋ค.
-
ํ์ง๋ง ์์ ์๊ฐ Excel ํ์ผ์ Open ํ๋ค๋ฉด, ๋งค์ด swSave ๊ฐ ์์ฑ๋ ๋, ํด๋น ๊ฒฝ๋ก ํ์ผ์ด ์ด๋ฏธ ์ด๋ ค ์์ผ๋ฏ๋ก IOException ๋ฐ์ โ ๋ฐ์ ์๊ฐ๋์ Log Data ๋๋ฝ
-
๊ธฐ๋ํ๋ ๋์
๋์ 1. Excel ํ์ผ ์์ฑ์ ์ฝ๊ธฐ์ ์ฉ์ผ๋ก ์ค์ ํ๋ค.
์ ๋ง 1์ฐจ์์ ์ธ ์๊ฐ์ด์์ต๋๋คโฆ ์ฝ๊ธฐ์ ์ฉ์ผ๋ก ํ๋ swSave ๋ฅผ ์์ฑํ ๋, ํด๋น ๊ฒฝ๋ก ํ์ผ ์ ๊ทผ์ด ๋ถ๊ฐํ์ต๋๋ค.
๋์ 2. FileStream ์์ฑ์ ์ง์ ํ๋ค.
FileStream fsSave = new FileStream(strFilePath, FileMode.Append, FileAccess.Write, FileShare.Read);
using (swSave = new StreamWriter(fsSave, Encoding.UTF8))
{
swSave.WriteLine(strBld);
}
- FileMode(Path์ ํ์ผ์ ๊ฐ์ง๊ณ ํ ํ๋์ ๋ํ๋ ๋๋ค) : Append (ํ์ผ์ ์ด๊ณ ํ์ผ์ ๋๊น์ง ๊ฒ์ํ๊ฑฐ๋ ์ ํ์ผ์ ๋ง๋ญ๋๋ค.)
- FileAccess(๋ด๊ฐ(๋ณธ์ธ ํ๋ก์ธ์ค) ์ด ํ์ผ์ ์ด ๋์ ์ง์ ํ ๊ถํ์ ์๋ฏธ) : Write (ํ์ผ์ ์ธ ์ ์์ต๋๋ค.)
- FileShare(๋ค๋ฅธ ํ๋ก์ธ์ค(์ค๋ ๋)๊ฐ ํ์ผ์ ์ด ๋ ๊ฐ์ง ์ ์๋ ๊ถํ์ ์ง์ ) : Read (๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ํ์ผ์ ์ฝ์ ์ ์์ต๋๋ค.)
ํ๋ก๊ทธ๋จ์์๋ Write ํ๋ฉด์ ์์
์๋ Read ์์ฑ์ผ๋ก ํ์ผ์ Open ํ๋ฉด ๋ ์ค ์์์ต๋๋ค.
ํ์ง๋ง ์๋์ ๊ฐ์ ๋๊ฐ์ง case ๊ฐ ๋ฐ๋ณต ๋ฌ์ต๋๋ค.
case 1) ํ์ผ์ด Write ์ค์ผ ๋, ์์
์๊ฐ Open ํ ๊ฒฝ์ฐ ( ํ๋ก๊ทธ๋จ์ด ์ ์ ํ ๊ฒฝ์ฐ )
ํด๋น ๊ฒฝ์ฐ๋ Excel ์์ ์ฝ๊ธฐ์ ์ฉ์ผ๋ก Open ํ ์ง ๋ฌผ์ด๋ด
๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ฐ์ดํฐ ์ด๋๋ ๊ฐ๋ฅํ๊ณ Write ๋ ์ ์์ ์ผ๋ก ๋์ํฉ๋๋ค.
case 2) ํ์ผ์ด ์์ง Write ์ํ ๋, ์์
์๊ฐ ๋จผ์ Open ํ ๊ฒฝ์ฐ (๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ์ ์ ํ ๊ฒฝ์ฐ )
ํด๋น ๊ฒฝ์ฐ๋ Excel ์ ์ผ๋ฐ ํ์ผ์ฒ๋ผ ์ด๋ฆฌ๊ณ ๋ฐ๋ก swSave ์์ ํด๋น ํ์ผ์ด ์ด๋ ธ์ผ๋ฏ๋ก IOException ์ด ๋ฐ์ํฉ๋๋ค.
๋์ผ๋ก ์ฐ๋ค๋ณด๋ ๋ง์ด ๊ธธ์์ต๋๋ค.
์ฌ์ค ์์ฆ ๋๋ผ๋ ์๊ฐ์ ๊ถ๊ธํ ๋ด์ฉ์ ๋ํด์ ์ฐพ์๋ณด๊ฑฐ๋ ํ
์คํธ ํด๋ณด์ง ์์ ์ํ์์ ๋๋ฃจ๋ญ์คํ๊ฒ ๊ฒ์์ ํ๋ค๋ณด๋ ์ํ๋ ์ ๋ณด๋ฅผ ์ฐพ์ง ๋ชปํ๋๊ฑฐ ๊ฐ์ต๋๋ค. ๋ญ๊ฐ ํ๋ก๊ทธ๋๋ฐํ๋ฉด์ ๋๊ฐ์ ์ฝ๋๋ฅผ ๋ฐ๋ณตํด ๋งค๋๋ฆฌ์ฆ(?) ์ ๋น ์ง๋ ๋๋๋ ๋๋๊ฑฐ ๊ฐ๊ตฌ์. ๋ญ๊ฐ ์ด๋ฒ ๊ณ๊ธฐ๋ก ํ๋ก๊ทธ๋จ์ ๊ฐ์ ํด๋๊ฐ๋ฉด์ ๋น์ฐํ๋ค๊ณ ์๊ฐํ๋ ๋ถ๋ถ๋ค์ ๋ฏ์ด ๊ณ ์น๊ณ ์ถ์ต๋๋ค.
์ข์ ๋ฐฉ๋ฒ๊ณผ ๋์๋ ๋งํ ์ ๋ณด๋ ๋ชจ๋ ํ์์
๋๋ค!
๊ฐ์ฌํฉ๋๋ค!
โ์ฐธ๊ณ URL : [C#] ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ์ฝ์ ์ ์๊ฒ ํ์ผ ์ด๊ธฐ (FileAccess, FileShare)