// 一覧用テンプレート
#topicpath
----

プラグインからEclipseのワークスペース上のリソースを操作する方法をまとめます。
**全体の構成 [#s9356f95]

Eclipseのワークスペース関連のAPIは
-ワークスペース全体を表すorg.eclipse.core.resources.IWorkspaceRoot
-その下の各プロジェクトorg.eclipse.core.resources.IProject
-プロジェクト内のリソースorg.eclipse.core.resources.IResource

のような構成となっています。これらへの参照を取得して、そのオブジェクトのメソッドを呼び出してワークスペースを操作するわけですね。

あ、これらのAPIを使用するには
 org.eclipse.core.resources
を依存関係に追加してください。



**ワークスペースの参照を取得する [#k467344b]
 IWorkspace workspace = ResourcesPlugin.getWorkspace();
 IWorkspaceRoot root = workspace.getRoot();

これでワークスペースへの参照を取得することができます。このIWorkspaceRoot から各プロジェクトへの参照を取得することができます。


**プロジェクトへの参照を取得する [#t157b35f]
 IWorkspaceRoot root = workspace.getRoot();
 IProject[] projects = root.getProjects();
これで現在起動しているワークスペース内のプロジェクトを配列で取得することできました。また、
 IProject project = root.getProject([プロジェクト名の文字列]);
などとしてプロジェクト名指定で参照を取得することもできます。



**プロジェクトを作成する [#t157b35f]
先のメソッドでプロジェクトを取得することができましたが、プロジェクトを作成するには以下のようにします。

 IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
 IProject project = root.getProject("hogehoge");
 if (!project.exists()) {
   try {
     project.create(null);
   } catch (CoreException e1) {
     // TODO 自動生成された catch ブロック
     e1.printStackTrace();
   }
 }
プロジェクトが存在するときにcreateを実行すると
 org.eclipse.core.internal.resources.ResourceException: リソース /hogehoge はすでに存在します。
のように例外が発生するため、存在チェックをしています。またプロジェクトを作成する
 IProject#create(IProgressMonitor monitor)
メソッドは時間がかかる場合があるため、引数にIProgressMonitorを取ります。ここではとりあえずnullを渡してますが、

**プロジェクト内の各リソース [#ea1f2338]
プロジェクト内のリソースは



**ディレクトリを作成する [#s73ab009]


**Javaソースコードから、対応するリソースを取得する [#v783dbb5]



***コンテンツ一覧 [#f5b87e5a]
#ls2

***関連リンク [#ee033052]





----
この記事は
#vote(おもしろかった,そうでもない)

#comment
#topicpath


SIZE(10){現在のアクセス:&counter;}

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS