28-2.ÆÄÀÏ °ü¸®

28-2-1.ÆÄÀÏ °ü¸®

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 °°Àº ½ºÆ®¸²ÀÇ ¸Þ¼­µå¸¦ È£ÃâÇØ¾ß ÇÑ´Ù. ÀÌ ¸Þ¼­µå´Â ½ºÆ®¸² »ý¼ºÀ» À§ÇÑ Áß°è ¿ªÇÒ¸¸ ÇÒ »ÓÀ̹ǷΠÀÔÃâ·ÂÀ» À§Çؼ­¶ó¸é ¾ÖÃʺÎÅÍ ½ºÆ®¸² °´Ã¼¸¦ »ý¼ºÇÏ´Â °ÍÀÌ °£ÆíÇÏ´Ù.

28-2-2.µð·ºÅ͸® °ü¸®

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 Çʵå´Â °æ·Î¸íÀ¸·Î ¾µ ¼ö ¾ø´Â ¹®ÀÚÀÇ ¸ñ·ÏÀ» Á¶»çÇϴµ¥ µû¿ÈÇ¥, ºÎµîÈ£(<, >), ÆÄÀÌÇÁ(|) µîÀº °æ·Î ¹®ÀÚ¿­·Î ¾µ ¼ö ¾ø´Ù.

28-2-3.º¯È­ °¨½Ã

¸ÖƼ ŽºÅ· ȯ°æ¿¡¼­´Â µð½ºÅ©µµ °øÀ¯µÇ¹Ç·Î µð·ºÅ͸®³ª ÆÄÀÏ¿¡ ¾ðÁ¦ º¯È­°¡ »ý±æÁö ¿¹ÃøÇÒ ¼ö ¾ø´Ù. ³»°¡ °¡¸¸È÷ ÀÖ´õ¶óµµ ´Ù¸¥ ÇÁ·Î±×·¥ÀÌ ¾ðÁ¦µçÁö ÆÄÀÏÀ» Áö¿ì°Å³ª »õ·Î¿î µð·ºÅ͸®¸¦ ¸¸µé ¼ö ÀÖ´Ù. ÆÄÀÏ ¸ñ·ÏÀ» Ç¥½ÃÇÏ°í ÀÖ´Ù¸é ÀÌ·± º¯È­¿¡ ´ëÇØ Áï°¢ÀûÀ¸·Î ¹ÝÀÀÀ» º¸¿©¾ß Çϸç Ç×»ó ÃֽŠ¸ñ·ÏÀ¸·Î °»½ÅÇØ¾ß ÇÑ´Ù. Ž»ö±â¸¦ Àß °üÂûÇØ º¸¸é ´©°¡ ÆÄÀÏÀ» º¯°æÇϵ簣¿¡ ÃֽŠ¸ñ·ÏÀ» Àß Ç¥½ÃÇÑ´Ù.

±×·¯ÀÚ¸é º¯È­°¡ ÀÖ´ÂÁö ÁÖ±âÀûÀ¸·Î ¸ñ·ÏÀ» °¨½ÃÇØ¾ß Çϴµ¥ ÀÌ´Â Á÷Á¢ Çϱ⿡´Â °áÄÚ ½¬¿î ÀÏÀÌ ¾Æ´Ï´Ù. ŸÀ̸Ӹ¦ µ¹·Á °¡¸ç ÀÏÀÏÀÌ ¸ñ·ÏÀ» ´Ù½Ã Á¶»çÇؼ­ ÀÌÀü ¸ñ·Ï°ú ºñ±³ÇØ ºÁ¾ß ÇÑ´Ù. ÆÄÀÏÀÇ °³¼ö°¡ ÀûÀ» ¶§´Â ÀÌ·± ¹æ¹ýµµ ¾µ¸¸ÇÏÁö¸¸ ¸¹À» ¶§´Â È¿À²ÀÌ ³Ê¹« ¶³¾îÁø´Ù. ±×·¸´Ù°í ÀÌ·± ÀÛ¾÷¿¡ ½º·¹µå±îÁö µ¿¿øÇϱ⿡´Â ¾î¿ï¸®Áö ¾Ê´Â´Ù. ´ÙÇàÈ÷ ¿î¿µÃ¼Á¦´Â µð½ºÅ©ÀÇ º¯È­¸¦ ÀÀ¿ë ÇÁ·Î±×·¥À¸·Î ÅëÁöÇÏ´Â ¼­ºñ½º¸¦ Á¦°øÇÏ¸ç ´å³ÝÀº ¿î¿µÃ¼Á¦ÀÇ º¯È­ ÅëÁö ¼­ºñ½º¸¦ 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 µå¶óÀ̺êÀÇ ·çÆ® µð·ºÅ͸®¿¡ ÀÖ´Â ¸ðµç ÆÄÀÏÀ» °¨½ÃÇÑ´Ù.

½ÇÁ¦ ÇÁ·ÎÁ§Æ®¿¡¼­´Â º¯È­¿¡ µû¸£´Â ÈÄ¼Ó Ã³¸®¸¦ ÇØ¾ß ÇÑ´Ù. ÆÄÀÏ ¸ñ·ÏÀ» Ç¥½ÃÇÏ°í ÀÖ´Ù¸é ´Ù½Ã Á¶»çÇÏ°í ÆÄÀÏÀÇ ¹Ì¸® º¸±â¸¦ Ãâ·ÂÇØ ³õ¾Ò´Ù¸é ³»¿ëÀ» °»½ÅÇØ¾ß ÇÑ´Ù.