Ç÷§Æû Äھ ½ÇÇà ÁßÀ̰í ÀÚ¿ø Ç÷¯±×ÀÎÀÌ È°¼º »óÅÂÀ̸é ÀÛ¾÷°ø°£ÀÌ IWorkspace ÀνºÅϽº·Î Ç¥½ÃµÇ´Âµ¥, ÀÌ ÀνºÅϽº´Â Æ÷ÇÔµÈ ÀÚ¿ø¿¡ ¾×¼¼½ºÇϱâ À§ÇØ ÇÁ·ÎÅäÄÝÀ» Á¦°øÇÕ´Ï´Ù. IWorkspace ÀνºÅϽº´Â ¿¬°üµÈ ÆÄÀÏ ¹× µð·ºÅ丮 ÄÝ·º¼ÇÀ» ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛ¿¡ Ç¥½ÃÇÕ´Ï´Ù. org.eclipse.core.resourcesÀÇ ÀÚ¿ø Ç÷¯±×ÀΠŬ·¡½º¿¡¼ ÀÛ¾÷°ø°£¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
ResourcesPlugin.getWorkspace();
ÀÚ¿ø Ç÷¯±×ÀÎÀÌ ½ÇÇà ÁßÀÌ ¾Æ´Ï¸é, ÀÛ¾÷°ø°£Àº ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛ¿¡¸¸ Á¸ÀçÇϰí Ç¥ÁØ ÆÄÀÏ ±â¹Ý µµ±¸¸¦ ÅëÇØ »ç¿ëÀÚ°¡ À̸¦ º¸°Å³ª Á¶ÀÛÇÕ´Ï´Ù. ÀÚ¿ø Ç÷¯±×ÀÎ API¸¦ ¼³¸íÇÏ¸é¼ µð½ºÅ©¿¡¼ ÀÛ¾÷°ø°£ÀÇ ¸ð¾çÀ» »ìÆì º¸µµ·Ï ÇսôÙ.
Ç÷§Æû SDK¸¦ ¼³Ä¡ÇßÀ» ¶§ ¼±ÅÃÇÑ µð·ºÅ丮¿¡ ÆÄÀÏ ¾ÐÃàÀ» Ç®¾ú´Âµ¥, ÀÌ µð·ºÅ丮¸¦ Ç÷§Æû ·çÆ® µð·ºÅ丮¶ó°í ÇÕ´Ï´Ù. ÀÌ µð·ºÅ丮´Â plugins µð·ºÅ丮°¡ Æ÷ÇÔµÈ µð·ºÅ丮ÀÔ´Ï´Ù. Ç÷§Æû ·çÆ® µð·ºÅ丮 ³»¿¡´Â Ç÷§Æû¿¡ ÀÇÇØ ÀÛ¼ºµÇ¾î Á¶À۵Ǵ ÀÚ¿øÀ» º¸À¯ÇÏ´Â µ¥ »ç¿ëµÇ´Â workspace µð·ºÅ丮°¡ ÀÖ½À´Ï´Ù. workspace µð·ºÅ丮¸¦ »ìÆì º¸¸é ÀÛ¾÷°ø°£¿¡ ÀÖ´Â °¢ ÇÁ·ÎÁ§Æ®¿¡ ´ëÇØ µ¶¸³ ¼ºêµð·ºÅ丮°¡ ÀÖ½À´Ï´Ù. ÀÌ ¼ºêµð·ºÅ丮 ³»¿¡ °¢ ÇÁ·ÎÁ§Æ®¿¡ Æ÷ÇÔµÈ ÆÄÀϰú Æú´õ°¡ ÀÖ½À´Ï´Ù.
ÀÌ ¿¹¿¡¼ SD°¡ c:\MySDK¿¡ ¼³Ä¡µÇ¸é, c:\MySDK\workspace µð·ºÅ丮 ³»¿¡ ÀÛ¾÷°ø°£ÀÇ ÇÁ·ÎÁ§Æ®( MyWeb¿Í MyServlet) À̸§À» µû¶ó À̸§ ÁöÁ¤µÈ ¼ºêµð·ºÅ丮°¡ ÀÖ½À´Ï´Ù. ÀÌ µð·ºÅ丮¸¦ ÇÁ·ÎÁ§Æ®ÀÇ ÄÁÅÙÃ÷ µð·ºÅ丮¶ó°í ÇÕ´Ï´Ù. ÄÁÅÙÃ÷ µð·ºÅ丮´Â »ç¿ëÀÚ°¡ ÇÁ·ÎÁ§Æ®¸¦ ÀÛ¼ºÇÒ ¶§ Ç÷§Æû¿¡ ÀÇÇØ ÀÛ¼ºµË´Ï´Ù.
°¢ µð·ºÅ丮 ³»¿¡ ÀÛ¾÷°ø°£ÀÇ ÀÚ¿ø Æ®¸®¿¡¼¿Í µ¿ÀÏÇÑ ¹æ¹ýÀ¸·Î ·¹À̾ƿôµÈ ÇÁ·ÎÁ§Æ® ³»ÀÇ ÆÄÀÏ ¹× Æú´õ°¡ ÀÖ½À´Ï´Ù. ¸ðµç ÆÄÀÏ À̸§Àº µ¿ÀÏÇϸç, ÆÄÀÏ ÄÁÅÙÃ÷´Â ÆÄÀÏ ½Ã½ºÅÛ¿¡¼ ¾×¼¼½ºÇϵç ÀÛ¾÷°ø°£¿¡¼ ¾×¼¼½ºÇÏµç µ¿ÀÏÇÕ´Ï´Ù. À¯ÀÏÇÏ°Ô ³î¶ó¿î °ÍÀº .project ÆÄÀÏÀÔ´Ï´Ù.
C:\MySDK\workspace (workspace root) .metadata\ (platform metadata directory MyWeb\ (project content directory for MyWeb) .project index.html images\ logo.gif MyServlet\ (project content directory for MyServlet) .project src\ main.java bin\ main.class
Ç÷§Æû¿¡´Â Ç÷§Æû ³»ºÎ Á¤º¸¸¦ º¸À¯Çϱâ À§ÇÑ Æ¯¼ö .metadata µð·ºÅ丮°¡ ÀÖ½À´Ï´Ù. ÀÛ¾÷°ø°£ÀÇ .metadata µð·ºÅ丮´Â "ºí·¢ ¹Ú½º"·Î °£Áֵ˴ϴÙ. ÀÛ¾÷°ø°£ ±¸Á¶¿¡ ´ëÇÑ Áß¿äÇÑ Á¤º¸(¿¹: ÇÁ·ÎÁ§Æ® ÂüÁ¶»çÇ× ¶Ç´Â ÀÚ¿ø Ư¼º)°¡ ÀÛ¾÷°ø°£ÀÇ ¸ÞŸµ¥ÀÌÅÍ ºÎºÐ¿¡ ÀúÀåµÇ¸ç, Ç÷§Æû API¸¦ ÅëÇØ µµ±¸¿¡ ÀÇÇØ¼¸¸ Á¤º¸¿¡ ¾×¼¼½ºÇØ¾ß ÇÕ´Ï´Ù. ÀÏ¹Ý ÆÄÀÏ ½Ã½ºÅÛ API¸¦ »ç¿ëÇÏ¿© ÀÌ ÆÄÀÏÀ» ÆíÁýÇϰųª Á¶ÀÛÇØ¼´Â ¾ÈµË´Ï´Ù.
±×¸®°í ¸ðµç ÇÁ·ÎÁ§Æ®¿¡´Â ÇÁ·ÎÁ§Æ®¿¡ ´ëÇÑ ¸ÞŸµ¥ÀÌÅͰ¡ º¸°üµÇ´Â °íÀ¯ÇÑ .project ÆÄÀÏÀÌ ÀÖ½À´Ï´Ù. ÀÌ ÆÄÀÏÀº ±âº»ÀûÀ¸·Î ÇÁ·ÎÁ§Æ®ÀÇ IProjectDescription¿¡ ÀÖ´Â Á¤º¸¿Í µð½ºÅ©»ó µ¿µîÇÑ Á¤º¸ÀÔ´Ï´Ù.
.metadata µð·ºÅ丮¸¦ Á¦¿ÜÇϰí, ÀÛ¾÷°ø°£ µð·ºÅ丮ÀÇ Æú´õ ¹× .project ÆÄÀÏÀº ´Ù¸¥ µµ±¸·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ µð·ºÅ丮ÀÇ ÆÄÀÏ ¹× Æú´õ´Â ÅëÇÕµÇÁö ¾ÊÀº µµ±¸(¿¹: ¹®¼ ÆíÁý±â ¹× ÆÄÀÏ ½Ã½ºÅÛ À¯Æ¿¸®Æ¼)°¡ Á¶ÀÛÇÒ ¼ö ÀÖ½À´Ï´Ù. À¯ÀÏÇÑ ¹®Á¦Á¡Àº »ç¿ëÀÚ°¡ Workbench¿¡¼ ÀÌ ÆÄÀÏÀ» ÆíÁýÇϰųª ¿ÜºÎÀûÀ¸·Î ÆÄÀÏÀ» ÆíÁýÇÒ ¶§ ÁÖÀÇÇØ¾ß ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. À̰ÍÀº »ç¿ëÀÚ°¡ µÎ °³ÀÇ µ¶¸³Çü µµ±¸¸¦ »ç¿ëÇÏ¿© ÆÄÀÏÀ» ÆíÁýÇÏ´Â °æ¿ì¿Í ´Ù¸£Áö ¾Ê½À´Ï´Ù. Workbench´Â ÀÚ¿ø¿¡ ´ëÇÑ ÀÛ¾÷°ø°£ º¸±â¸¦ ÆÄÀÏ ½Ã½ºÅÛÀÇ ½ÇÁ¦ »óÅÂ¿Í ÀÏÄ¡½Ã۱â À§ÇØ »õ·Î °íÄ¡±â Á¶ÀÛÀ» Á¦°øÇÕ´Ï´Ù.
ÀÚ¿ø API¸¦ »ç¿ëÇϸé ÀÌ ÀÚ¿ø Æ®¸®¸¦ ÄÚµå·Î Á¶ÀÛÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÚ¿ø API¸¦ °£·«È÷ »ìÆì º¸±â À§ÇØ ¸î °¡Áö ÄÚµå ½º´ÏÆêÀ» »ìÆì º¸µµ·Ï ÇϰڽÀ´Ï´Ù. ÀÚ¿ø API´Â org.eclipse.core.resources¿¡ ÀÏ·ÃÀÇ ÀÎÅÍÆäÀ̽º·Î Á¤Àǵ˴ϴÙ. ÀÚ¿ø À¯Çü(¿¹: IProject, IFolder ¹× IFile) ¸ðµÎ¿¡ ´ëÇØ ÀÎÅÍÆäÀ̽º°¡ ÀÖ½À´Ï´Ù. ±¤¹üÀ§ÇÑ °øÅë ÇÁ·ÎÅäÄÝÀº IResource¿¡ Á¤Àǵ˴ϴÙ. ÀÚ¿ø ¶Ç´Â ÆÄÀÏ ½Ã½ºÅÛ °æ·Î °°Àº ¼¼±×¸ÕÆ®ÈµÈ °æ·Î¸¦ Ç¥½ÃÇÏ´Â org.eclipse.core.runtime ÀÎÅÍÆäÀ̽º IPathµµ »ç¿ëÇÕ´Ï´Ù.
ÀÚ¿ø Á¶ÀÛÀº java.io.FileÀ» »ç¿ëÇÏ¿© ÆÄÀÏÀ» Á¶ÀÛÇÏ´Â °Í°ú ¸Å¿ì ºñ½ÁÇÕ´Ï´Ù. API´Â ÇÚµéÀ» ±â¹ÝÀ¸·Î ÇÕ´Ï´Ù. getProject ¶Ç´Â getFolder¿Í °°Àº API¸¦ »ç¿ëÇÒ ¶§ ÇÚµéÀÌ ÀÚ¿øÀ¸·Î ¸®Åϵ˴ϴÙ. ÇÚµé·Î ¹«¾ùÀΰ¡ ¼öÇàÇÏ·Á°í ½ÃµµÇÒ ¶§±îÁö ÀÚ¿øÀÌ Á¸ÀçÇÑ´Ù´Â º¸ÀåÀ̳ª ¿ä±¸»çÇ×Àº ¾ø½À´Ï´Ù. ÀÚ¿øÀÌ Á¸ÀçÇÏ´Â °ÍÀ¸·Î ¿¹»óµÇ¸é exist ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© Á¸ÀçÇÏ´ÂÁö È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.
Ç÷¯±×Àο¡¼ ÀÛ¾÷°ø°£À» Ž»öÇÏ·Á¸é ÀÛ¾÷°ø°£¿¡¼ ÀÚ¿ø °èÃþ ±¸Á¶ ¸Ç À§¸¦ Ç¥½ÃÇÏ´Â IWorkspaceRoot¸¦ ¸ÕÀú ¾ò¾î¾ß ÇÕ´Ï´Ù.
IWorkspaceRoot myWorkspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
ÀÛ¾÷°ø°£ ·çÆ®°¡ ÀÖÀ¸¸é, ÀÛ¾÷°ø°£ÀÇ ÇÁ·ÎÁ§Æ®¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
IProject myWebProject = myWorkspaceRoot.getProject("MyWeb"); // open if necessary if (myWebProject.exists() && !myWebProject.isOpen()) myWebProject.open(null);
ÇÁ·ÎÁ§Æ®¸¦ Á¶ÀÛÇϱâ Àü¿¡ ¸ÕÀú ÇÁ·ÎÁ§Æ®¸¦ ¿¾î¾ß ÇÕ´Ï´Ù. ÇÁ·ÎÁ§Æ®¸¦ ¿¸é µð½ºÅ©¿¡¼ ÇÁ·ÎÁ§Æ® ±¸Á¶¸¦ Àоî ÇÁ·ÎÁ§Æ®ÀÇ ÀÚ¿ø Æ®¸®¿¡ ´ëÇÑ ³»ºÎ ¸Þ¸ð¸® ¿ÀºêÁ§Æ® Ç¥½Ã¸¦ ÀÛ¼ºÇÕ´Ï´Ù. ÇÁ·ÎÁ§Æ® ¿±â´Â ¿¸° °¢ ÇÁ·ÎÁ§Æ®°¡ ³»ºÎÀûÀ¸·Î ÀÚ¿ø Æ®¸®¸¦ Ç¥½ÃÇϱâ À§ÇØ ¸Þ¸ð¸®¸¦ »ç¿ëÇÏ°í ¿¸° ÇÁ·ÎÁ§Æ®°¡ ¿©·¯ ÀÚ¿ø ¶óÀÌÇÁ »çÀÌŬ À̺¥Æ®(¿¹: ºôµå)¿¡ Âü¿©ÇÏ´Â ¸í½ÃÀûÀÎ Á¶ÀÛÀÔ´Ï´Ù. ÀϹÝÀûÀ¸·Î 󸮿ϷáµÈ ÇÁ·ÎÁ§Æ®¿¡´Â ¾×¼¼½ºÇÒ ¼ö ¾øÀ¸¸ç, ÀÚ¿øÀÌ ÆÄÀÏ ½Ã½ºÅÛ¿¡ °è¼Ó ÀÖ´õ¶óµµ 󸮿ϷáµÈ ÇÁ·ÎÁ§Æ®´Â ºó »óÅ·Πǥ½ÃµË´Ï´Ù.
ÀÌ ÀÚ¿ø ¿¹Á¦ Áß ´Ù¼ö°¡ ÀÚ¿øÀ» Á¶ÀÛÇÒ ¶§ ³Î ¸Å°³º¯¼ö¸¦ Àü´ÞÇÑ´Ù´Â »ç½ÇÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù. ´Ù¼öÀÇ ÀÚ¿ø Á¶ÀÛÀº ÁøÇà º¸°í ¹× »ç¿ëÀÚ Ãë¼Ò µîÀÌ ÇÊ¿äÇÒ ¼ö ÀÖ´Â º¹ÀâÇÑ ÀÛ¾÷ÀÔ´Ï´Ù. Äڵ忡 »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º°¡ ÀÖ´Â °æ¿ì, ÀϹÝÀûÀ¸·Î ÀÚ¿øÀÌ Á¶ÀÛµÉ ¶§ ÀÚ¿ø Ç÷¯±×ÀÎÀÌ ÁøÇàÀ» º¸°íÇÒ ¼ö ÀÖµµ·Ï ÇÏ°í »ç¿ëÀÚ°¡ ¿øÇϸé Á¶ÀÛÀ» Ãë¼ÒÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â IProgressMonitor¸¦ Àü´ÞÇÕ´Ï´Ù. Áö±ÝÀº ÁøÇà ¸ð´ÏÅͰ¡ ¾øÀ½À» Ç¥½ÃÇÏ´Â null¸¸ Àü´ÞÇÕ´Ï´Ù.
ÇÁ·ÎÁ§Æ®°¡ ¿·Á ÀÖÀ¸¸é Æú´õ ¹× ÆÄÀÏ¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖÀ¸¸ç, Æú´õ ¹× ÆÄÀÏÀ» Ãß°¡·Î ÀÛ¼ºÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ´ÙÀ½ ¿¹Á¦¿¡¼´Â ÀÛ¾÷°ø°£ ¹Û¿¡ À§Ä¡ÇÑ ÆÄÀÏ ÄÁÅÙÃ÷¿¡¼ ÆÄÀÏ ÀÚ¿øÀ» ÀÛ¼ºÇÕ´Ï´Ù.
IFolder imagesFolder = myWebProject.getFolder("images"); if (imagesFolder.exists()) { // create a new file IFile newLogo = imagesFolder.getFile("newLogo.gif"); FileInputStream fileStream = new FileInputStream( "c:/MyOtherData/newLogo.gif"); newLogo.create(fileStream, false, null); // create closes the file stream, so no worries. }
À§ ¿¹¿¡¼ ù ¹øÂ° ÇàÀº À̹ÌÁö Æú´õ¿¡ ´ëÇÑ ÇÚµéÀ» ¾ò½À´Ï´Ù. Æú´õ¿¡ ´ëÇÑ ÀÛ¾÷À» ¼öÇàÇϱâ Àü¿¡ Æú´õ°¡ ÀÖ´ÂÁö È®ÀÎÇØ¾ß ÇÕ´Ï´Ù. ¸¶Âù°¡Áö·Î newLogo ÆÄÀÏÀ» ¾òÀ» ¶§ ¸¶Áö¸· Çà¿¡¼ ÆÄÀÏÀ» ÀÛ¼ºÇÒ ¶§±îÁö ÇÚµéÀÌ ½ÇÁ¦ ÆÄÀÏÀ» Ç¥½ÃÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ ¿¹¿¡¼´Â logo.gif ÄÁÅÙÃ÷·Î ä¿ö ÆÄÀÏÀ» ÀÛ¼ºÇÕ´Ï´Ù.
´ÙÀ½ ½º´ÏÆêÀº ÄÁÅÙÃ÷¿¡¼ »õ ÆÄÀÏÀ» ÀÛ¼ºÇÏÁö ¾Ê°í ¿ø·¡ ·Î°í¿¡¼ newLogo ÆÄÀÏÀ» º¹»çÇÑ´Ù´Â °ÍÀ» Á¦¿ÜÇϸé ÀÌÀü ½º´ÏÆê°ú À¯»çÇÕ´Ï´Ù.
IFile logo = imagesFolder.getFile("logo.gif"); if (logo.exists()) { IPath newLogoPath = new Path("newLogo.gif"); logo.copy(newLogoPath, false, null); IFile newLogo = imagesFolder.getFile("newLogo.gif"); ... }
¸¶Áö¸·À¸·Î, ¶Ç´Ù¸¥ À̹ÌÁö Æú´õ¸¦ ÀÛ¼ºÇÏ¿© »õ·Î ÀÛ¼ºÇÑ ÆÄÀÏÀ» ±× Æú´õ·Î À̵¿ÇÕ´Ï´Ù. ÆÄÀÏ À̸§À» ¹Ù²ã »õ·Î ÀÛ¼ºÇÑ ÆÄÀÏÀÌ ÀÌÀü ÆÄÀÏÀ» µ¤¾î¾²Áö ¾Êµµ·Ï ÇÕ´Ï´Ù.
... IFolder newImagesFolder = myWebProject.getFolder("newimages"); newImagesFolder.create(false, true, null); IPath renamedPath = newImagesFolder.getFullPath().append("renamedLogo.gif"); newLogo.move(renamedPath, false, null); IFile renamedLogo = newImagesFolder.getFile("renamedLogo.gif");
´Ù¼öÀÇ ÀÚ¿ø API ¸Þ¼Òµå¿¡´Â ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛÀÇ ÇØ´ç ÆÄÀϰú µ¿±âȵÇÁö ¾ÊÀº ÀÚ¿øÀÇ °»½Å ¿©ºÎ¸¦ ÁöÁ¤ÇÏ´Â force ºÎ¿ï Ç÷¡±×°¡ ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ Á¤º¸´Â IResource¸¦ ÂüÁ¶ÇϽʽÿÀ. IResource.isSynchronized¸¦ »ç¿ëÇÏ¿© ƯÁ¤ ÀÚ¿øÀÌ ÆÄÀÏ ½Ã½ºÅÛ°ú µ¿±âȵǾú´ÂÁö È®ÀÎÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
»ùÇà ÀÚ¿ø Æ®¸®¿¡¼, ¸ðµç ÇÁ·ÎÁ§Æ® ÄÁÅÙÃ÷ µð·ºÅ丮°¡ Ç÷§Æû ·çÆ® µð·ºÅ丮(C:\MySDK\workspace) ¾Æ·¡ÀÇ workspace µð·ºÅ丮¿¡ ÀÖ´Ù°í °¡Á¤Çß½À´Ï´Ù. À̰ÍÀº ÇÁ·ÎÁ§Æ®ÀÇ ±âº» ±¸¼ºÀÔ´Ï´Ù. ±×·¯³ª ÇÁ·ÎÁ§Æ®ÀÇ ÄÁÅÙÃ÷ µð·ºÅ丮¸¦ ÆÄÀÏ ½Ã½ºÅÛ(´Ù¸¥ µð½ºÅ© µå¶óÀ̺ê)ÀÇ ÀÓÀÇÀÇ µð·ºÅ丮¿¡ ´Ù½Ã ¸ÊÇÎÇÒ ¼ö ÀÖ½À´Ï´Ù.
´Ù¸¥ ÇÁ·ÎÁ§Æ®¿¡ µ¶¸³ÀûÀ¸·Î ÇÁ·ÎÁ§Æ® À§Ä¡¸¦ ¸ÊÇÎÇÏ´Â ±â´ÉÀ» »ç¿ëÇÏ¸é »ç¿ëÀÚ°¡ ÇÁ·ÎÁ§Æ® ÄÁÅÙÃ÷¸¦ ÇÁ·ÎÁ§Æ® ¹× ÇÁ·ÎÁ§Æ® ÆÀ¿¡ Àû´çÇÑ À§Ä¡¿¡ ÀúÀåÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÁ·ÎÁ§Æ®ÀÇ ÄÁÅÙÃ÷ µð·ºÅ丮´Â "°³¹æÀû"À̾î¾ß ÇÕ´Ï´Ù. ÀÌ´Â »ç¿ëÀÚ°¡ Workbench¿Í Ç÷¯±×ÀÎÀ» »ç¿ëÇÏ¿© ¶Ç´Â ÆÄÀÏ ½Ã½ºÅÛ ±â¹ÝÀÇ µµ±¸¿Í ÆíÁý±â¸¦ »ç¿ëÇÏ¿© °£Á¢ÀûÀ¸·Î ÀÚ¿øÀ» ÀÛ¼º, ¼öÁ¤, »èÁ¦ÇÒ ¼ö ÀÖÀ½À» ÀǹÌÇÕ´Ï´Ù.
ÀÚ¿ø °æ·Î À̸§Àº ¿ÏÀüÇÑ ÆÄÀÏ ½Ã½ºÅÛ °æ·Î°¡ ¾Æ´Õ´Ï´Ù. ÀÚ¿ø °æ·Î´Â Ç×»ó ÇÁ·ÎÁ§Æ® À§Ä¡(´ë°³ workspace µð·ºÅ丮)¸¦ ±â¹ÝÀ¸·Î ÇÕ´Ï´Ù. ÀÚ¿ø¿¡ ´ëÇÑ Àüü ÆÄÀÏ ½Ã½ºÅÛ °æ·Î¸¦ ¾òÀ¸·Á¸é IResource.getLocation À» »ç¿ëÇÏ¿© À§Ä¡¸¦ Á¶È¸ÇØ¾ß ÇÕ´Ï´Ù. ±×·¯³ª ÇØ´ç ¸Þ¼Òµå´Â µ¥ÀÌÅÍ ±¸Á¶¿¡ ´ëÇÑ ´Ü¼øÇÑ setter ¸Þ¼ÒµåÀ̹ǷΠÀ§Ä¡¸¦ º¯°æÇϱâ À§Çؼ IProjectDescription.setLocationÀ» »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.
¹Ý´ë·Î ÆÄÀÏ ½Ã½ºÅÛ °æ·Î°¡ Á¦°øµÈ ÇØ´çÇÏ´Â ÀÚ¿ø ¿ÀºêÁ§Æ®¸¦ °¡Á®¿À·Á¸é IWorkspaceRoot.getFileForLocation ¶Ç´Â IWorkspaceRoot.getContainerForLocation¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÚ¿ø API¸¦ »ç¿ëÇÏ¿© ÀÛ¾÷°ø°£ÀÇ ÀÚ¿ø Æ®¸®¸¦ ¼öÁ¤ÇÒ °æ¿ì, ÆÄÀÏÀÌ ÆÄÀÏ ½Ã½ºÅÛ¿¡¼ º¯°æµÇ¸ç ÀÚ¿ø ¿ÀºêÁ§Æ®°¡ °»½ÅµË´Ï´Ù. Ç÷§Æû API ¹Û¿¡¼ ¹ß»ýÇÏ´Â ÀÚ¿ø ÆÄÀÏ¿¡ ´ëÇÑ º¯°æ»çÇ×Àº ¾î¶»°Ô µÉ±î¿ä?
ÀÚ¿ø¿¡ ´ëÇÑ ¿ÜºÎ º¯°æ»çÇ×Àº ÀÚ¿ø Ç÷¯±×Àο¡ ÀÇÇØ ¹ß°ßµÉ ¶§±îÁö ÀÛ¾÷°ø°£ ¹× ÀÚ¿ø ¿ÀºêÁ§Æ®¿¡ ¹Ý¿µµÇÁö ¾Ê½À´Ï´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ÀÚ¿ø API¸¦ »ç¿ëÇÏ¿© ÀÛ¾÷°ø°£ ¹× ÀÚ¿ø ¿ÀºêÁ§Æ®¸¦ »ç¿ëÀÚÀÇ °³ÀÔ ¾øÀÌ ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛ°ú ÀÏÄ¡½Ãų ¼ö ÀÖ½À´Ï´Ù. »ç¿ëÀÚ´Â Ç×»ó ¸í½ÃÀûÀ¸·Î WorkbenchÀÇ ÀÚ¿ø ³×ºñ°ÔÀÌÅÍ º¸±â¿¡¼ »õ·Î °íÄ¡±â¸¦ °Á¦ ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.
Âü°í: ÀÚ¿ø API¿¡¼ ´Ù¼öÀÇ ¸Þ¼Òµå¿¡ ÆÄÀÏ ½Ã½ºÅÛ°ú µ¿±âȵÇÁö ¾ÊÀº ÀÚ¿øÀ» ó¸®ÇÏ´Â ¹æ¹ýÀ» ÁöÁ¤ÇÏ´Â force(°Á¦ ½ÇÇà) ¸Å°³º¯¼ö°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. °¢ ¸Þ¼Òµå¿¡ ´ëÇÑ API ÂüÁ¶´Â ÀÌ ¸Å°³º¯¼ö¿¡ ´ëÇÑ Æ¯Á¤ Á¤º¸¸¦ Á¦°øÇÕ´Ï´Ù. API¿¡¼ ±âŸ ¸Þ¼Òµå´Â ÆÄÀÏ ½Ã½ºÅÛ »õ·Î °íÄ¡±â¿¡ ´ëÇÑ ÇÁ·Î±×·¥ Á¦¾î(¿¹: IResource.refreshLocal(int depth, IProgressMonitor monitor)¸¦ Çã¿ëÇÕ´Ï´Ù. ¿Ã¹Ù¸¥ »ç¿ë¹ý°ú ¹®Á¦Á¡¿¡ ´ëÇÑ Á¤º¸´Â IResource¸¦ ÂüÁ¶ÇϽʽÿÀ.