0

ファイルパスを見つけてもお聞きしたいのですが...

アプリに関連付けられるファイルを持っているか、持っているはずですが、アプリを開いて初期化するファイルパスを見つける方法がわかりません。

例:Excelファイル「file.xlx」のWindows環境をクリックすると、Windowsはこのファイル「file.xls」でExcelアプリケーションを開き、まったく同じことが必要です。アプリが開いた後、アプリを初期化して起動するファイルパスを知りたい...

私の質問が理解できることを願っています。下手な英語で申し訳ありません.. :)

編集:

別の例を追加してみます...

いくつかの論理演算を記述してみます...

1 - 何も実行されておらず、Windows だけです - 願っています :)

2 - ユーザーが HDD のどこかにあるファイルをクリックします (このファイルは別の名前と別の場所を持つことができます)

3 - いくつかの拡張子を持つこのファイルは、私のアプリに関連付けられています

4 - アプリは、ユーザーがクリックしたファイル (アプリケーションの起動を呼び出すユーザー) を自動的に検出し、他の作業でこのファイル パスを使用します...

コンソールアプリを起動したときのようなものだと思います。いくつかの引数を使用して....しかし、この引数は、いくつかのウィンドウの場所から取得する必要があります。file.txtをクリックするとWindowsがメモ帳を開き、メモ帳が自動的にこのfile.txtを開くか、file.dbfをクリックするとWindowsがこのファイルでfoxproを開きます

file.xxxをクリックすると、アプリが開き、このファイルを自動的に処理するので、クリックしたこのファイルの場所を取得する方法が必要だと思います...

これが助けになることを願っています...

4

3 に答える 3

1

Javaシステムのプロパティhttp://docs.oracle.com/javase/tutorial/essential/environment/sysprop.htmlを見てください。おそらく、user.dirが必要です。

于 2013-01-23T13:49:41.497 に答える
0

アプリをインストールするときに、レジストリなどのOSを設定できると思います。

String osName = System.getProperty("os.name") ;
于 2013-01-24T09:04:01.960 に答える
0

必要なのはこのようなプログラムだと思います。これは、指定されたディレクトリ内のファイルの存在を計算します

package fileSearch;
import java.io.File;
import java.io.FilenameFilter;
public class fileSearch {

    /**
     * @param args
     */
    public static void main(String[] args) {
        fileSearch obj = new fileSearch();
        obj.finder("program.txt");
        for(int i=0;i<obj.finder("C:/Users/hussain.a/Desktop").length;i++)
        {
            System.out.println(obj.finder("C:/Users/hussain.a/Desktop")[i].getName());
        }
    }
    public File[] finder( String dirName){
        File dir = new File(dirName);

        return dir.listFiles(new FilenameFilter() { 
                 public boolean accept(File dir, String filename)
                      { return filename.endsWith(".txt"); }
        } );

    }

}

目的のディレクトリに適用するのはあなた次第です.Windowsプログラムとまったく同じにしたい場合は、毎回ルートディレクトリを使用し、このプログラムの「.txt」を置き換えるパラメータとしてファイル名を渡す必要があります.

それが役立つことを願っています、それを実装するのはあなた次第です

于 2013-01-23T14:11:28.227 に答える