IResource °èÃþ ±¸Á¶¿¡ ¼ÓÇÏ´Â ´ëºÎºÐÀÇ API´Â ÀÚ¿øÀÌ ÀúÀåµÇ´Â ÆÄÀÏ ½Ã½ºÅÛÀÇ À¯Çü¿¡ °ü°è ¾øÀÌ µ¿ÀÏÇÑ ¹æ½ÄÀ¸·Î ±â´ÉÀ» ¼öÇàÇÕ´Ï´Ù. ±×·¯³ª ´Ù¸¥ ÆÄÀÏ ½Ã½ºÅÛÀÇ ÀÚ¿ø °ü·Ã ÀÛ¾÷À» ¼öÇàÇÏ´Â °æ¿ì ƯÁ¤ API¸¦ »ç¿ëÇÏÁö ¾Ê¾Æ¾ß ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ API´Â ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛ ÀÛ¾÷¿ëÀ¸·Î¸¸ µðÀÚÀÎµÈ APIÀÔ´Ï´Ù.
ƯÈ÷ IResource.getLocation ¸Þ¼Òµå´Â ÀÚ¿øÀÇ ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛ °æ·Î¸¦ ¸®ÅÏÇϵµ·Ï ÁöÁ¤µË´Ï´Ù. ÀÚ¿øÀÌ ´Ù¸¥ ÆÄÀÏ ½Ã½ºÅÛ¿¡ ÀÖ´Â °æ¿ì ÀÌ ¸Þ¼Òµå°¡ Àû¿ëµÇÁö ¾ÊÀ¸¸ç ³Î(null)À» ¸®ÅÏÇÕ´Ï´Ù. ´ë½Å, ÀÚ¿øÀÌ ÀúÀåµÇ´Â ÆÄÀÏ ½Ã½ºÅÛÀÇ À¯Çü¿¡ °ü°è ¾øÀÌ ±â´ÉÀ» ¼öÇàÇÏ´Â getLocationURI ¸Þ¼Òµå¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù.
¸¶Âù°¡Áö·Î, IProjectDescription getLocation ¹× setLocation ¸Þ¼Òµåµµ ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛ¿¡¼¸¸ À¯È¿ÇϹǷΠ»ç¿ëÇØ¼´Â ¾ÈµË´Ï´Ù. ´ë½Å URI ±â¹Ý À§Ä¡ ¸Þ¼Òµå¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
·ÎÄà ÆÄÀÏ ½Ã½ºÅÛ¿¡ ¾ø´Â ÀÚ¿ø °ü·Ã ÀÛ¾÷À» ¼öÇàÇÏ¸é¼ ½ÇÁ¦·Î ·ÎÄà ÆÄÀÏÀÌ ÇÊ¿äÇÑ °æ¿ì, ¿¹¸¦ µé¾î java.io.File¿¡ ´ëÇÑ Á¾¼Ó¼ºÀ» °®´Â ¶óÀ̺귯¸®¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ °æ¿ì IFileStore.toLocalFile ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© ÆÄÀÏÀÇ ·ÎÄà »çº»À» ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¸Þ¼Òµå¸¦ »ç¿ëÇϸé Àüü µð·ºÅ丮 Æ®¸®°¡ ¾Æ´Ñ ÇϳªÀÇ ÆÄÀÏ ¶Ç´Â µð·ºÅ丮¸¸ ·ÎÄ÷Πij½ÃÇÕ´Ï´Ù. ´ÙÀ½Àº ·ÎÄà ij½ÌÀ» »ç¿ëÇÏ¿© IFileStore¿¡¼ ZIP ÆÄÀÏÀ» ¿©´Â ¿¹Á¦ÀÔ´Ï´Ù.
IFileStore store = ...;//some file store java.io.File file = store.toLocalFile(EFS.NONE, null); if (file == null) { //we are not a local file store, so we need to cache a local copy file = store.toLocalFile(EFS.CACHE, null); } java.util.zip.ZipFile zip = new java.util.ZipFile(file);
¸µÅ©µÈ ÀÚ¿øÀ» »ç¿ëÇÏ¿© ¿©·¯ ÆÄÀÏ ½Ã½ºÅÛÀÇ ÀÚ¿øÀ» ÇÔ²² ±×¸®´Â ÇÁ·ÎÁ§Æ®¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. IFile.createLink(URI, int, IProgressMonitor) ¶Ç´Â IFolder.createLink(URI, int, IProgressMonitor) ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© ÇØ´ç ÄÁÅÙÃ÷°¡ ÀÓÀÇÀÇ ÆÄÀÏ ½Ã½ºÅÛ ³» ´Ù¸¥ À§Ä¡¿¡ ÀúÀåµÇ´Â ±âÁ¸ ÇÁ·ÎÁ§Æ®¿¡¼ ÀÚ¿øÀ» ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸µÅ©µÈ ´Ù¸¥ ÀÚ¿ø ¾Æ·¡¿¡ ¸µÅ©¸¦ ÀÛ¼ºÇÏ¿© ¸¹Àº ´Ù¸¥ ÆÄÀÏ ½Ã½ºÅÛ¿¡¼ ÀÓÀÇÀÇ ÀÚ¿ø Æ®¸® ±×¸®±â¸¦ ÀÛ¼ºÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ´ÙÀ½Àº ¼Ò½º¿Í µ¿ÀÏÇÑ ÆÄÀÏ ½Ã½ºÅÛ À§Ä¡¸¦ °øÀ¯ÇÏ´Â ¸µÅ©µÈ µ¿À§ ÆÄÀÏÀ» ÀÛ¼ºÇÏ´Â °£´ÜÇÑ ¿¹Á¦ÀÔ´Ï´Ù.
IFile source = ...;//some source file IFile link = source.getParent().getFile(new Path(source.getName() + ".link")); link.createLink(source.getLocationURI(), IResource.NONE, null);