// 一覧用テンプレート #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;}