File Ŭ·¡½º´Â ÆÄÀÏÀ» °ü¸®ÇÑ´Ù.
½ºÆ®¸² °ü·Ã Ŭ·¡½ºÀÇ °ü¸® ´ë»óÀº ÆÄÀÏ¿¡ ÀúÀåµÈ µ¥ÀÌÅÍÀε¥ ºñÇØ File Ŭ·¡½ºÀÇ °ü¸®
´ë»óÀº ÆÄÀÏ ±× ÀÚü¶ó´Â Á¡ÀÌ ´Ù¸£´Ù. FileÀº ÆÄÀÏ°ú °ü·ÃµÈ Á¤Àû ¸Þ¼µå¸¸ °¡Áö´Â Á¤Àû Ŭ·¡½ºÀ̸ç
°´Ã¼´Â »ý¼ºÇÒ ¼ö ¾ø´Ù. ´ÙÀ½Àº File Ŭ·¡½ºÀÇ ÁÖ¿ä ¸Þ¼µåÀÌ´Ù.
public static void Copy (string source,string
dest [,bool overwrite])
public static void Delete (string path)
public static void Move (string source,string
dest)
public static bool Exists (string path)
public static FileAttributes GetAttributes
(string path)
public static void SetAttributes (string
path,FileAttributes fileAttributes)
public static DateTime GetCreationTime (string
path)
public static void SetCreationTime (string
path,DateTime creationTime)
À§¿¡¼ºÎÅÍ Â÷·Ê´ë·Î º¹»ç, »èÁ¦, À̵¿, Á¸Àç ¿©ºÎ Á¶»ç, ¼Ó¼º Á¶»ç ¹× º¯°æ, ½Ã°£ Á¶»ç ¹× º¯°æ ¸Þ¼µåÀÌ´Ù. À̸§ÀÌ Á÷°üÀûÀÌ°í Àμöµµ µ¿ÀÛ¿¡
²À ÇÊ¿äÇÑ °Í¸¸ ¹ÞÀ¸¹Ç·Î ½±´Ù. Copy¿Í Move´Â º¹»ç
¿øº», º¹»ç ´ë»óÀ» Àμö·Î ¹Þ°í CopyÀÇ °æ¿ì ÀÌ¹Ì ÆÄÀÏÀÌ
ÀÖÀ» °æ¿ì µ¤¾î ¾µ °ÍÀΰ¡¸¦ ÁöÁ¤ÇÏ´Â Àμö¸¦ Çϳª ´õ ¹ÞÀ» ¼ö ÀÖ´Ù. Delete³ª Exists´Â ´ë»ó ÆÄÀÏÀÇ °æ·Î¸¸ Àü´ÞÇÏ¸é µÈ´Ù. ´ÙÀ½Àº ¸î °¡Áö
È£Ãâ ¿¹ÀÌ´Ù.
File.Copy(@"C:\Data\Report.txt",
@"D:\Backup\Report.txt");
File.Move(@"C:\Down\CSharp.doc",
@"D:\Data\CSharp.doc");
File.Delete(@"C:\Temp\Download.log");
µµ½º ¸í·É¾îÀÇ ¹®¹ý°ú ºñ½ÁÇÏ´Ù. »ó´ë °æ·Îµµ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç UNC ÇüÅ·Π³×Æ®¿÷»óÀÇ ÆÄÀϵµ °ü¸®ÇÒ ¼ö ÀÖ´Ù. ÆÄÀÏ °ü¸® ¸Þ¼µå´Â
°æ·Î¸¦ ¹Þ±â ¶§¹®¿¡ ÆÄÀÏÀ» ¹Ì¸® ¿ÀÇÂÇØ µÑ ÇÊ¿ä´Â ¾ø´Ù. ¸®ÅÏ°ªÀ» ÅëÇÑ ¿¡·¯ º¸°í´Â ¾øÀ¸¸ç ¿¹¿Ü¸¦ ´øÁø´Ù.
FileInfo Ŭ·¡½º´Â ƯÁ¤ ÆÄÀÏ Çϳª¸¦ °ü¸®Çϴµ¥ File°ú °ÅÀÇ À¯»çÇÑ ±â´ÉÀ» Á¦°øÇÑ´Ù. FileÀÇ ¸Þ¼µå´Â Àμö·Î
Àü´Þ¹ÞÀº ÀÓÀÇÀÇ ÆÄÀÏ¿¡ ´ëÇØ µ¿ÀÛÇϴµ¥ ºñÇØ FileInfo´Â »ý¼ºÀÚ·Î Àü´ÞÇÑ Æ¯Á¤ ÆÄÀÏ Çϳª¸¸ ÁýÁßÀûÀ¸·Î
°ü¸®ÇÑ´Ù´Â Á¡ÀÌ ´Ù¸£´Ù. FileInfo´Â Á¤Àû Ŭ·¡½º´Â ¾Æ´Ï¾î¼ °´Ã¼¸¦ »ý¼ºÇÒ ¼ö ÀÖÁö¸¸ ºÀÀεǾî
ÀÖ¾î »ó¼ÓÇÒ ¼ö´Â ¾ø´Ù.
public FileInfo (string fileName)
ÆÄÀÏÀÇ °æ·Î¸¦ Àü´ÞÇϸé ÀÌÈÄ ¿©·¯ °¡Áö °ü¸®¸¦ ÇÒ ¼ö ÀÖ´Ù. ÆÄÀÏÀº
¹Ýµå½Ã Á¸ÀçÇÏÁö ¾Ê¾Æµµ »ó°ü¾ø´Ù. °´Ã¼¸¦ ¸ÕÀú ¸¸µé¾î ³õ°í ÆÄÀÏÀ» »ý¼ºÇϰųª ÆÄÀÏÀÇ Á¸Àç ¿©ºÎ¸¦ Á¶»çÇÒ
¼öµµ ÀÖÀ¸¹Ç·Î Á¸ÀçÇÏÁö ¾Ê´Â ÆÄÀÏÀ» Àü´ÞÇÒ ¼öµµ ÀÖ´Ù. FileInfoÀÇ ¸Þ¼µå´Â CopyTo, MoveTo, Delete µîÀÌ Àִµ¥ ´ëºÎºÐ File Ŭ·¡½º¿Í
Áߺ¹µÈ´Ù.
public FileInfo CopyTo (string dest [,bool
overwrite])
public void MoveTo (string dest)
public override void Delete ()
¿øº»¿¡ ´ëÇÑ Á¤º¸´Â ÀÌ¹Ì »ý¼ºÀÚ·Î Àü´ÞÇßÀ¸¹Ç·Î ¿øº» ÆÄÀÏ¿¡ ´ëÇÑ Àμö°¡ ¾ø´Ù.
¸ñÀû ÆÄÀÏ °æ·Î¸¸ Àü´ÞÇϰųª ¾Æ´Ï¸é ¸Þ¼µå¸¸ È£ÃâÇÏ¸é µÈ´Ù. ´ÙÀ½ µÎ È£Ãâ¹®Àº ¶È°°Àº µ¿ÀÛÀ»
ÇÑ´Ù.
File.Copy(@"C:\Data\Report.txt", @"D:\Backup\Report.txt");
FileInfo MyFile(@"C:\Data\Report.txt");
MyFile.CopyTo(@"D:\Backup\Report.txt");
Copy ¸Þ¼µå¸¦ Á÷Á¢ È£ÃâÇÏ¿© ¿øº»°ú ¸ñÀû °æ·Î¸¦ ¹àÈ÷³ª »ý¼ºÀÚ·Î
¿øº»À» ¹àÈù ÈÄ CopyTo·Î ¸ñÀû °æ·Î¸¸ ¹àÈ÷³ª °á°ú´Â ¸¶Âù°¡ÁöÀÌ´Ù.
´ÙÀ½Àº FileInfo Ŭ·¡½º¿¡¸¸ ÀÖ°í File¿¡´Â
¾ø´Â ¸Þ¼µåÀÌ´Ù.
public void Refresh ()
Refresh´Â ÆÄÀÏ¿¡ ´ëÇÑ Á¤º¸¸¦ °»½ÅÇÑ´Ù. FileInfo°¡ °ü¸®ÇÏ´Â ÆÄÀÏÀÌ ¾ðÁ¦ ¹Ù²ðÁö ¾Ë ¼ö ¾ø´Ù. ¸ÖƼ
ŽºÅ· ȯ°æ¿¡¼´Â ¹æ±Ý ÀÖ´ø ÆÄÀÏÀÌ ±Ý¹æ »èÁ¦µÉ ¼ö ÀÖ°í ³»¿ëÀÌ ¹Ù²ð ¼öµµ ÀÖ´Ù. ±×·¡¼ ÁÖ¿ä Á¤º¸¸¦
ÂüÁ¶Çϱâ Àü¿¡ ÆÄÀÏ Á¤º¸¸¦ Á÷Á¢ °»½ÅÇØ¾ß ÇÑ´Ù. ÀÌ´Â ´ÙÀ½¿¡ ¹è¿ï µð·ºÅ͸® Á¤º¸¿¡ ´ëÇؼµµ ¸¶Âù°¡ÁöÀÌ´Ù. FileInfoÀÇ ÇÁ·ÎÆÛƼ´Â °³º° ÆÄÀÏ¿¡ ´ëÇÑ ´õ »ó¼¼ÇÑ Á¤º¸¸¦ Á¦°øÇÑ´Ù.
ÇÁ·ÎÆÛƼ |
ŸÀÔ |
¼³¸í |
Directory |
DirectoryInfo ¨Þ |
ºÎ¸ð µð·ºÅ͸®ÀÇ Á¤º¸¸¦ °¡Áö´Â °´Ã¼¸¦ ¸®ÅÏÇÑ´Ù. |
DirectoryName |
string ¨Þ |
ºÎ¸ð µð·ºÅ͸®ÀÇ °æ·Î¸¦ Ç¥ÇöÇÏ´Â ¹®ÀÚ¿ÀÌ´Ù. |
Exists |
bool ¨Þ |
ÆÄÀÏÀÌ Á¸ÀçÇÏ´ÂÁö¸¦ Á¶»çÇÑ´Ù. |
IsReadOnly |
bool |
ÆÄÀÏÀÌ Àбâ Àü¿ëÀÎÁö¸¦ Á¶»çÇÑ´Ù. |
Length |
long ¨Þ |
ÆÄÀÏÀÇ Å©±âÀÌ´Ù. |
Name |
string ¨Þ |
ÆÄÀÏÀÇ À̸§ÀÌ´Ù. |
File Ŭ·¡½ºÀÇ Exists ¸Þ¼µå°¡
FileInfo¿¡¼´Â ÇÁ·ÎÆÛƼ·Î ±¸ÇöµÇ¾î ÀÖ´Ù. FileÀº
´ë»ó ÆÄÀÏ¿¡ ´ëÇÑ °æ·Î¸¦ Àü´Þ¹Þ¾Æ¾ß Á¸Àç À¯¹«¸¦ Á¶»çÇÒ ¼ö ÀÖÀ¸¹Ç·Î Exists°¡ ¸Þ¼µåÀÏ ¼ö¹Û¿¡ ¾ø´Ù. ÇÏÁö¸¸ FileInfo´Â Á¤Àû Ŭ·¡½º°¡ ¾Æ´Ï°í °ü¸®ÇÏ´Â ÆÄÀÏ¿¡ ´ëÇÑ
°æ·Î¸¦ ÀÌ¹Ì ¾Ë°í ÀÖÀ¸¹Ç·Î ÇÁ·ÎÆÛƼ¸¸À¸·Îµµ Á¸Àç À¯¹«³ª ±æÀÌ, ¼Ó¼ºÀ» °£ÆíÇÏ°Ô Á¶»çÇÒ ¼ö ÀÖ´Ù.
File Ŭ·¡½º¿Í FileInfo Ŭ·¡½ºÀÇ Create, OpenRead, OpenWrite ¸Þ¼µå¸¦ »ç¿ëÇϸé ÆÄÀÏ ÀÔÃâ·Âµµ ÇÒ ¼ö ÀÖ´Ù. ÀÔÃâ·ÂÇÒ ¼ö ÀÖ´Â FileStream °´Ã¼¸¦ »ý¼ºÇÏ¿© ¸®ÅÏÇÒ »ÓÀ̸ç
Á÷Á¢ ÀÔÃâ·ÂÀ» ¼öÇà ÇÏÁö´Â ¾Ê´Â´Ù. ÀÔÃâ·ÂÀ» ÇÒ ¶§´Â ¾îÂ÷ÇÇ
Read, Write °°Àº ½ºÆ®¸²ÀÇ ¸Þ¼µå¸¦ È£ÃâÇØ¾ß ÇÑ´Ù. ÀÌ ¸Þ¼µå´Â ½ºÆ®¸² »ý¼ºÀ»
À§ÇÑ Áß°è ¿ªÇÒ¸¸ ÇÒ »ÓÀ̹ǷΠÀÔÃâ·ÂÀ» À§Çؼ¶ó¸é ¾ÖÃʺÎÅÍ ½ºÆ®¸² °´Ã¼¸¦ »ý¼ºÇÏ´Â °ÍÀÌ °£ÆíÇÏ´Ù.
Directory Ŭ·¡½º´Â µð·ºÅ͸®¸¦ °ü¸®ÇÑ´Ù. Á¤Àû Ŭ·¡½ºÀ̹ǷΠ°´Ã¼´Â »ý¼ºÇÒ ¼ö ¾ø´Ù. ÁÖ¿ä ¸Þ¼µå ¸ñ·ÏÀº ´ÙÀ½°ú
°°´Ù.
public static DirectoryInfo CreateDirectory
(string path)
public static void Delete (string path [,bool
recursive])
public static void Move (string source,string
dest)
public static bool Exists (string path)
À§¿¡¼ºÎÅÍ ¼ø¼´ë·Î µð·ºÅ͸®¸¦ »ý¼º, »èÁ¦, À̵¿, Á¸Àç ¿©ºÎ¸¦ Á¶»çÇÑ´Ù. »èÁ¦ÇÒ
¶§ recursive Àμö¸¦ true·Î ÁöÁ¤ÇÏ¸é ¼ºê µð·ºÅ͸®±îÁö
ÇѲ¨¹ø¿¡ »èÁ¦ÇÑ´Ù. µð·ºÅ͸®µµ ÀÏÁ¾ÀÇ ÆÄÀÏÀ̱⠶§¹®¿¡ ½Ã°£À̳ª ¼Ó¼ºÀ» °ü¸®ÇÏ´Â ¸Þ¼µåµµ Á¸ÀçÇÑ´Ù. ´ÙÀ½ ¸Þ¼µå´Â µð·ºÅ͸®³»ÀÇ ÆÄÀÏ°ú ¼ºê µð·ºÅ͸® ¸ñ·ÏÀ» Á¶»çÇÑ´Ù.
public static string[] GetFiles (string path
[,string Pattern,SearchOption Option])
public static string[] GetDirectories (string
path [,string Pattern,SearchOption Option])
public static string[] GetFileSystemEntries
(string path [,string Pattern])
path´Â Á¶»ç¸¦ ½ÃÀÛÇÒ °æ·ÎÀÌ°í
PatternÀº °Ë»ö ÆÐÅÏÀÌµÇ ¿ÍÀϵå Ä«µå½ÄÀ¸·Î Ç¥ÇöÇÑ´Ù. "*.*"´Â
¸ðµç ÆÄÀÏÀ» ÀǹÌÇÏ°í "*.txt"´Â È®ÀåÀÚ°¡
txtÀÎ ÆÄÀÏÀ» ÀǹÌÇÑ´Ù. OptionÀº ÇÏÀ§ µð·ºÅ͸®±îÁö °Ë»öÇÒ °ÍÀΰ¡¸¦ ÁöÁ¤Çϴµ¥ TopDirectoryOnlyÀ̸é path °æ·Î¸¸ Á¶»çÇÏ°í AllDirectoriesÀÌ¸é ¼ºê µð·ºÅ͸®ÀÇ ¸ñ·Ï±îÁö °°ÀÌ Á¶»çÇÑ´Ù. ÆÄÀÏ°ú
µð·ºÅ͸® ¸ñ·ÏÀ» °¢°¢ µû·Î Á¶»çÇÒ ¼öµµ ÀÖ°í GetFileSystemEntries ¸Þ¼µå·Î ÆÄÀÏ°ú µð·ºÅ͸®¸¦
ÇѲ¨¹ø¿¡ Á¶»çÇÒ ¼öµµ ÀÖ´Ù.
°Ë»ö °á°ú´Â ¹®ÀÚ¿ÀÇ ¹è¿·Î ¸®ÅϵǴµ¥ ¹è¿¿¡´Â ÆÄÀÏÀÇ ¿ÏÀü °æ·Î°¡ Æ÷ÇԵǾî ÀÖ´Ù. foreach ¹®À¸·Î ·çÇÁ¸¦ µ¹¸é °Ë»öµÈ ¸ðµç ÆÄÀÏÀÇ ¸ñ·ÏÀ» ¼øȸÇÑ´Ù. ´ÙÀ½
¿¹Á¦´Â ½Ã½ºÅÛ µð·ºÅ͸®ÀÇ ¸ðµç DLL ¸ñ·ÏÀ» Á¶»çÇÏ¿© ¸®½ºÆ® ¹Ú½º¿¡ ä¿î´Ù.
GetFiles |
using
System; ~ using System.Windows.Forms; using
System.IO; namespace
GetFiles { public
partial class Form1 : Form { public
Form1() { InitializeComponent(); } private
void button1_Click(object sender, EventArgs e) { listBox1.Items.Clear(); string[]
Files = Directory.GetFiles(Environment.SystemDirectory, "*.dll", SearchOption.TopDirectoryOnly); foreach
(string Name in Files) { listBox1.Items.Add(Name); } } } } |
½Ã½ºÅÛ µð·ºÅ͸®ÀÇ °æ·Î´Â Environment Ŭ·¡½ºÀÇ SystemDirectory ÇÁ·ÎÆÛƼ¸¦ ÀÐÀ¸¸é ½±°Ô ±¸ÇÒ ¼ö ÀÖ´Ù. ÆÐÅÏÀº *.dll·Î ÁöÁ¤ÇÏ¿© È®ÀåÀÚ°¡ dllÀÎ ¸ðµç ÆÄÀÏÀÇ ¸ñ·ÏÀ» Á¶»çÇߴµ¥ AllDirectories ¿É¼ÇÀ» ÁöÁ¤ÇÏ¸é ¼ºê µð·ºÅ͸®±îÁö °Ë»öÇÒ ¼ö ÀÖ´Ù.
¾öû³ ¼öÀÇ DLL ¸ñ·ÏÀÌ ¸®½ºÆ® ¹Ú½º¿¡ ³ªÅ¸³´Ù.
ƯÁ¤ µð·ºÅ͸® Çϳª¸¦ °ü¸®ÇÒ ¶§´Â DirectoryInfo Ŭ·¡½º¸¦
»ç¿ëÇÑ´Ù. »ý¼ºÀÚ·Î ´ë»ó µð·ºÅ͸®¸¦ ÁöÁ¤ÇÑ´Ù. Directory¿Í DirectoryInfo Ŭ·¡½ºÀÇ °ü°è´Â File°ú FileInfo Ŭ·¡½ºÀÇ °ü°è¿Í °°´Ù.
public DirectoryInfo(string path)
DirectoryInfoÀÇ
Create, Delete, MoveTo ¸Þ¼µå·Î ÇØ´ç µð·ºÅ͸®¸¦ °ü¸®ÇÑ´Ù. DirectoryInfo¿¡µµ
ÆÄÀÏ°ú µð·ºÅ͸® ¸ñ·ÏÀ» Á¶»çÇÏ´Â GetDirectories, GetFiles ¸Þ¼µå°¡ Àִµ¥ DirectoryÀÇ ±×°Íµé¿¡ ºñÇØ ¹®ÀÚ¿ÀÌ ¾Æ´Ñ DirectoryInfo,
FileInfo °´Ã¼ÀÇ ¹è¿À» ¸®ÅÏÇÑ´Ù´Â Á¡ÀÌ ´Ù¸£´Ù. ´ÙÀ½ ¸Þ¼µå´Â ¼ºê µð·ºÅ͸®±îÁö
ÇѲ¨¹ø¿¡ »ý¼ºÇϴµ¥ ±íÀº ´Ü°èÀÇ ÇÏÀ§ Æú´õ¸¦ ¸¸µé ¶§ ¾ÆÁÖ Æí¸®ÇÏ´Ù.
public DirectoryInfo CreateSubdirectory (string
path)
Path Ŭ·¡½º´Â °æ·Î ¹®ÀÚ¿À» Á¶ÀÛÇÏ°í °ü¸®ÇÏ´Â ÀÏÁ¾ÀÇ À¯Æ¿¸®Æ¼
Ŭ·¡½ºÀÌ´Ù. °æ·Î ¹®ÀÚ¿Àº µå¶óÀ̺ê, µð·ºÅ͸®, ÆÄÀÏ, È®ÀåÀÚ 4°¡Áö
¿ä¼Ò·Î ±¸¼ºµÇ´Âµ¥ ¿ä¼Ò°£ÀÇ °æ°è°¡ ¸íÈ®ÇÏÁö ¾Ê¾Æ ¿¹»ó¿Ü·Î º¹ÀâÇÏ´Ù. ¹®ÀÚ¿À» Á÷Á¢ ºÐ¼®Çؼ °³º° ¿ä¼Ò¸¦
Á¶ÀÛÇÏ´Â °ÍÀº ¾î·Á¿ì¹Ç·Î ÀÌ Å¬·¡½ºÀÇ µµ¿òÀ» ¹Þ´Â °ÍÀÌ ÁÁ´Ù.
public static string GetPathRoot (string path)
public static string GetDirectoryName (string
path)
public static string GetFileName (string path)
public static string GetExtension (string path)
public static string GetFileNameWithoutExtension
(string path)
public static string ChangeExtension (string
path,string extension)
public static string GetFullPath (string path)
public static bool IsPathRooted (string path)
°æ·Î ¹®ÀÚ¿À» °¢°¢ÀÇ Á¶°¢À¸·Î ºÐ¸®Çϰųª ƯÁ¤ ¿ä¼Ò¸¸ ´Ù¸¥ ¹®ÀÚ¿·Î º¯°æÇÑ´Ù.
¹®ÀÚ¿ Á¶ÀÛ¸¸ ÇϹǷΠ°æ·Î°¡ ½ÇÁ¦·Î Á¸ÀçÇÏÁö ¾Ê¾Æµµ »ó°ü¾ø´Ù. IsPathRooted ÇÁ·ÎÆÛƼ´Â
·çÆ®ºÎÅÍ ½ÃÀÛÇÏ´Â Àý´ë °æ·ÎÀÎÁö ¾Æ´Ï¸é »ó´ë °æ·ÎÀÎÁö Á¶»çÇÑ´Ù. Àý´ë °æ·Î´Â À©µµ¿ì¿¡¼ C:\... ½ÄÀ¸·Î ½ÃÀ۵ǰí À¯´Ð½º¿¡¼´Â /...À¸·Î ½ÃÀÛÇϴµ¥ Path´Â ÀÌ·± Ç÷§Æû°£ÀÇ Â÷ÀÌÁ¡±îÁö °í·ÁÇÏ¿© °æ·Î¿¡ ´ëÇÑ Á¤º¸¸¦ Á¶»çÇÏ°í °ü¸®ÇÑ´Ù.
Path¿¡
C:\Data\MyReport.hwp °æ·Î°¡ ÀÖ°í ÀÌ ÆÄÀÏÀÇ ¹é¾÷À» ¸¸µç´Ù°í ÇØ º¸ÀÚ.
C:\Data\MyReport.bak·Î ÆÄÀÏÀÇ È®ÀåÀÚ¸¸ ¹Ù²Ù¸é µÈ´Ù. À̶§ µÚÀÇ È®ÀåÀÚ hwp¸¦ bak·Î ¹Ù²ã¾ß Çϴµ¥ °£´ÜÇØ º¸ÀÌÁö¸¸ »ç½Ç º¹ÀâÇÏ´Ù. È®ÀåÀÚ°¡ ¹Ýµå½Ã ¼¼ ÀÚ¶ó´Â ±ÔÄ¢ÀÌ ¾ø°í ¾Æ¿¹ ¾øÀ» ¼öµµ ÀÖÀ¸¸ç ÆÄÀϸí Áß°£¿¡ ¸¶Ä§Ç¥°¡ ³ª¿Ã ¼öµµ ÀÖ¾î Àº±ÙÈ÷
±î´Ù·Ó´Ù. ChangeExtension ¸Þ¼µå´Â ÀÌ·± ¸ðµç °æ¿ì¸¦ °í·ÁÇÏ¿© È®ÀåÀÚ¸¦ ¿øÇϴ´ë·Î ¹Ù²ã
ÁØ´Ù.
PathÀÇ Çʵå´Â °æ·Î Ç¥±â¹ý¿¡ ´ëÇÑ Á¤º¸¸¦ Á¶»çÇϴµ¥ ÀÌ Á¤º¸´Â
Ç÷§ÆûÀ̳ª ÆÄÀÏ ½Ã½ºÅÛ¸¶´Ù ´Ù¸£´Ù. ¿¹¸¦ µé¾î
DirectorySeparator Çʵå´Â µð·ºÅ͸® »çÀÌÀÇ ±¸ºÐÀÚ ¹®ÀÚ¸¦ Á¶»çÇϴµ¥ À©µµ¿ì¿¡¼´Â \ÀÌ°í
À¯´Ð½º¿¡¼´Â /ÀÌ´Ù. InvalidPathChars Çʵå´Â
°æ·Î¸íÀ¸·Î ¾µ ¼ö ¾ø´Â ¹®ÀÚÀÇ ¸ñ·ÏÀ» Á¶»çÇϴµ¥ µû¿ÈÇ¥, ºÎµîÈ£(<,
>), ÆÄÀÌÇÁ(|) µîÀº °æ·Î ¹®ÀÚ¿·Î ¾µ ¼ö ¾ø´Ù.
¸ÖƼ ŽºÅ· ȯ°æ¿¡¼´Â µð½ºÅ©µµ °øÀ¯µÇ¹Ç·Î µð·ºÅ͸®³ª ÆÄÀÏ¿¡ ¾ðÁ¦ º¯È°¡ »ý±æÁö ¿¹ÃøÇÒ ¼ö ¾ø´Ù. ³»°¡ °¡¸¸È÷ ÀÖ´õ¶óµµ ´Ù¸¥ ÇÁ·Î±×·¥ÀÌ ¾ðÁ¦µçÁö ÆÄÀÏÀ» Áö¿ì°Å³ª »õ·Î¿î µð·ºÅ͸®¸¦ ¸¸µé ¼ö ÀÖ´Ù. ÆÄÀÏ ¸ñ·ÏÀ» Ç¥½ÃÇÏ°í ÀÖ´Ù¸é ÀÌ·± º¯È¿¡ ´ëÇØ Áï°¢ÀûÀ¸·Î ¹ÝÀÀÀ» º¸¿©¾ß Çϸç Ç×»ó ÃֽŠ¸ñ·ÏÀ¸·Î °»½ÅÇØ¾ß ÇÑ´Ù. Ž»ö±â¸¦ Àß °üÂûÇØ º¸¸é ´©°¡ ÆÄÀÏÀ» º¯°æÇϵ簣¿¡ ÃֽŠ¸ñ·ÏÀ» Àß Ç¥½ÃÇÑ´Ù.
±×·¯ÀÚ¸é º¯È°¡ ÀÖ´ÂÁö ÁÖ±âÀûÀ¸·Î ¸ñ·ÏÀ» °¨½ÃÇØ¾ß Çϴµ¥ ÀÌ´Â Á÷Á¢ Çϱ⿡´Â °áÄÚ ½¬¿î ÀÏÀÌ ¾Æ´Ï´Ù. ŸÀ̸Ӹ¦ µ¹·Á °¡¸ç ÀÏÀÏÀÌ ¸ñ·ÏÀ» ´Ù½Ã Á¶»çÇؼ ÀÌÀü ¸ñ·Ï°ú ºñ±³ÇØ ºÁ¾ß ÇÑ´Ù. ÆÄÀÏÀÇ °³¼ö°¡ ÀûÀ» ¶§´Â ÀÌ·± ¹æ¹ýµµ ¾µ¸¸ÇÏÁö¸¸ ¸¹À» ¶§´Â È¿À²ÀÌ ³Ê¹« ¶³¾îÁø´Ù. ±×·¸´Ù°í ÀÌ·± ÀÛ¾÷¿¡ ½º·¹µå±îÁö µ¿¿øÇϱ⿡´Â ¾î¿ï¸®Áö ¾Ê´Â´Ù. ´ÙÇàÈ÷
¿î¿µÃ¼Á¦´Â µð½ºÅ©ÀÇ º¯È¸¦ ÀÀ¿ë ÇÁ·Î±×·¥À¸·Î ÅëÁöÇÏ´Â ¼ºñ½º¸¦ Á¦°øÇÏ¸ç ´å³ÝÀº ¿î¿µÃ¼Á¦ÀÇ º¯È ÅëÁö ¼ºñ½º¸¦
FileSystemWatcher ÄÄÆ÷³ÍÆ®·Î Á¦°øÇÑ´Ù.
µµ±¸ ¸ðÀ½¿¡¼ ÀÌ ÄÄÆ÷³ÍÆ®¸¦ µå·¡±×ÇÏ¿© Æû¿¡ ¹èÄ¡Çϸé Æ®·¹ÀÌ ¿µ¿ª¿¡ ¹èÄ¡µÈ´Ù.
Path ÇÁ·ÎÆÛƼ¿¡ °¨½ÃÇÒ µð·ºÅ͸® °æ·Î¸¦ ÁöÁ¤ÇÏ°í Filter ÇÁ·ÎÆÛƼ¿¡ °¨½Ã ´ë»ó ÆÄÀÏÀÇ
ÆÐÅÏÀ» µî·ÏÇØ ³õÀ¸¸é µð·ºÅ͸®¿¡ º¯È°¡ »ý±æ ¶§¸¶´Ù À̺¥Æ®¸¦ ¹ß»ý½ÃŲ´Ù. »ý¼ºÀÚ¸¦ ÅëÇؼµµ µð·ºÅ͸®¿Í
ÆÐÅÏÀ» µî·ÏÇÒ ¼ö ÀÖ´Ù.
public FileSystemWatcher (string path [,string
filter])
»ý¼ºÀÚ·Î Àü´ÞÇÑ Á¤º¸´Â Path, Filter ÇÁ·ÎÆÛƼ·Î ÀúÀåÇϴµ¥
½ÇÇàÁß¿¡ ¾ðÁ¦¶óµµ º¯°æÇÒ ¼ö ÀÖ´Ù. °´Ã¼ »ý¼º ÈÄ ¾î¶² º¯È¸¦ °¨½ÃÇÒ °ÍÀÎÁö NotifyFilter ÇÁ·ÎÆÛƼ¿¡ ¼³Á¤ÇÏ¸ç ´ÙÀ½ ¿°ÅÇüÀ» ºñÆ® OR·Î
ÁöÁ¤ÇÑ´Ù. µðÆúÆ®´Â LastWrite, FileName,
DirectoryNameÀ¸·Î ¼³Á¤µÇ¾î ÀÖ¾î ÆÄÀÏÀ̳ª µð·ºÅ͸®°¡ Á¶±ÝÀÌ¶óµµ ¹Ù²î¸é À̺¥Æ®¸¦ ¹ß»ý½ÃŲ´Ù.
ÇÊÅÍ |
¼³¸í |
Attributes |
ÆÄÀÏ ¶Ç´Â Æú´õÀÇ ¼Ó¼ºÀÌ ¹Ù²î¾ú´Ù. |
CreateTime |
ÆÄÀÏ ¶Ç´Â Æú´õÀÇ »ý¼º ½Ã°£ÀÌ ¹Ù²î¾ú´Ù. |
DirectoryName |
µð·ºÅ͸®ÀÇ À̸§ÀÌ º¯°æµÇ¾ú´Ù. |
FileName |
ÆÄÀÏÀÇ À̸§ÀÌ º¯°æµÇ¾ú´Ù. |
LastAccess |
¸¶Áö¸· ¾×¼¼½ºÇÑ ½Ã°£ÀÌ º¯°æµÇ¾ú´Ù. |
LastWrite |
¸¶Áö¸· ±â·ÏÇÑ ½Ã°£ÀÌ º¯°æµÇ¾ú´Ù. |
Security |
º¸¾È ¼³Á¤ÀÌ º¯°æµÇ¾ú´Ù. |
Size |
ÆÄÀÏÀÇ Å©±â°¡ º¯°æµÇ¾ú´Ù. |
¼ºê µð·ºÅ͸®±îÁö °¨½ÃÇÏ·Á¸é IncludeSubdirectories ÇÁ·ÎÆÛƼ¸¦ true·Î ¼³Á¤ÇÑ´Ù. µðÆúÆ®´Â
falseÀ̹ǷΠÁöÁ¤ÇÑ µð·ºÅ͸®¸¸ °¨½ÃÇÑ´Ù. ÁöÁ¤ÇÑ µð·ºÅ͸®¿¡ Á¶±ÝÀÌ¶óµµ º¯È°¡ ¹ß»ýÇϸé Changed, Created, Deleted, Renamed µîÀÇ À̺¥Æ®°¡ ¹ß»ýÇÑ´Ù. °¨½ÃÇÏ°í ½ÍÀº À̺¥Æ®ÀÇ Çڵ鷯¸¦ ÀÛ¼ºÇØ ³õ°í º¯È ¹ß»ý½ÃÀÇ µ¿ÀÛÀ» ±â¼úÇÏ¸é µÈ´Ù. ´ÙÀ½ ¿¹Á¦´Â C µå¶óÀ̺êÀÇ ·çÆ® µð·ºÅ͸®¸¦ °¨½ÃÇÑ´Ù.
FileWatcher |
using
System; ~ using System.Windows.Forms; using
System.IO; namespace
FileWatcher { public
partial class Form1 : Form { public
Form1() { InitializeComponent(); } private
void fileSystemWatcher1_Changed(object sender, FileSystemEventArgs e) { listBox1.Items.Add("ÆÄÀÏÀÌ
º¯°æµÇ¾ú½À´Ï´Ù."); } private
void fileSystemWatcher1_Created(object sender, FileSystemEventArgs e) { listBox1.Items.Add("ÆÄÀÏÀÌ
»ý¼ºµÇ¾ú½À´Ï´Ù."); } private
void fileSystemWatcher1_Deleted(object sender, FileSystemEventArgs e) { listBox1.Items.Add("ÆÄÀÏÀÌ
»èÁ¦µÇ¾ú½À´Ï´Ù."); } private
void fileSystemWatcher1_Renamed(object sender, RenamedEventArgs e) { listBox1.Items.Add("ÆÄÀÏÀÇ
À̸§ÀÌ ¹Ù²î¾ú½À´Ï´Ù."); } } } |
Æû¿¡ ¸®½ºÆ® ¹Ú½º¿Í FileSystemWatcher ÄÄÆ÷³ÍÆ®¸¦ ¹èÄ¡ÇØ
³õ°í º¯È°¡ ¹ß»ýÇÒ ¶§¸¶´Ù ¸®½ºÆ® ¹Ú½º¿¡ ¹®ÀÚ¿·Î Ç¥½ÃÇÑ´Ù. Path ÇÁ·ÎÆÛƼ¿¡ C:\¸¦ ÁöÁ¤Çß°í Filter´Â µðÆúÆ®ÀÎ *.*¸¦ ±×´ë·Î µÎ¾úÀ¸¹Ç·Î C µå¶óÀ̺êÀÇ ·çÆ® µð·ºÅ͸®¿¡ ÀÖ´Â ¸ðµç
ÆÄÀÏÀ» °¨½ÃÇÑ´Ù.
½ÇÁ¦ ÇÁ·ÎÁ§Æ®¿¡¼´Â º¯È¿¡ µû¸£´Â ÈÄ¼Ó Ã³¸®¸¦ ÇØ¾ß ÇÑ´Ù. ÆÄÀÏ ¸ñ·ÏÀ»
Ç¥½ÃÇÏ°í ÀÖ´Ù¸é ´Ù½Ã Á¶»çÇÏ°í ÆÄÀÏÀÇ ¹Ì¸® º¸±â¸¦ Ãâ·ÂÇØ ³õ¾Ò´Ù¸é ³»¿ëÀ» °»½ÅÇØ¾ß ÇÑ´Ù.