2012-04-02 20 views
0

javaファイルのパス/ファイル名の取得が必要なプラグインを開発しています。パッケージエクスプローラから選択したjavaファイルのパス/ファイル名を取得したい

私が書いたコードは、XMLファイルまたはマニフェストファイルのファイル名/パスを正常に取得しますが、パッケージ内のJavaファイルのパスを取得することはできません。

私が使用しているコードは次のとおりです。 -

if (selection instanceof IStructuredSelection) 

    { 
     Object o = ((IStructuredSelection) selection).getFirstElement(); 
     if (o instanceof IFile) 
     { 
      IPath loc = ((IFile) o).getLocation(); 
      if (loc != null) 
      { 
        selectedFile = loc.toOSString(); 

      } 
      else 
       selectedFile = "Error at loc"; 
     } 
     else 
      selectedFile = "Error at O"; 
    } 
+0

「不可能」とはまったく何を意味しますか? – Qwerky

+0

ファイルの正しいパスが表示されます。 Javaファイルの場合は "ERROR AT O"と表示されます。 – Hitesh

+1

'IFile'の実装者でない場合、' o'が実際にどのタイプのデバッグとチェックをしていますか? – Thomas

答えて

0

THANKSまいらは、私はあなたの助けを借りて、それを把握することができました

ソリューションです -

オブジェクトO =((IStructuredSelection)選択).getFirstElement();

den IPath loc =((ICompilationUnit)o).getPath();

den selectedFile = loc.toOSString();

これで、選択したjavaファイルのパスを取得できます。また、これはプロジェクト名から始まるパス名を示しています。誰かが物理パス名全体を取得する方法を教えてくれますか?

0

ここで日食フォーラムからの話題です:http://www.eclipse.org/forums/index.php/mv/msg/162556/

たJavaソースファイルのリソースがIFileが、ICompilationUnitを実装し、そうするためにテストしていないように思えそれ。

+0

うん、そのデバッグに書かれている。 ICompilationUnit。高すぎる、私はそれを確認します。 – Hitesh

+0

上記のリンクは、ICompilationUnitを返す選択されたファイルリソースに関するものではありません。ファイルのパスを取得するには、ファイルリソースをIPathに変換するにはどうすればよいですか?誰かがその部分を伝える。お願いします。 – Hitesh

+0

@Hiteshあなたは本当にAPIを検索する方法を学ぶ必要があります。私が見ることのできるところから、 'ICompilationUnit'は' IJavaElement'を拡張し、 'IPath'を返す' getPath() 'メソッドを提供します。 – Thomas

関連する問題