2

ボタンを作成しましたが、ボタンをクリックしたときのように特定のディレクトリを開く方法がわかりません%appdata%

これがコードです->

//---- button4 ----
        button4.setText("Texture Packs");
        button4.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e)
            {
                JFileChooser fileChooser=new JFileChooser("%appdata%");
                int status = fileChooser.showOpenDialog(this);
                fileChooser.setMultiSelectionEnabled(false);

                if(status == JFileChooser.APPROVE_OPTION) {
                    File file = fileChooser.getSelectedFile();
                    // do something on the selected file.
                }


            }

そして、私はこのようなものを作りたい->

private void button4MouseClicked(MouseEvent e) throws IOException {

           open folder %appdata% 
           // Open the folder in the file explorer not in Java.
           // When I click on the button, the folder is viewed with the file explorer on the screen
        }
4

3 に答える 3

3
import java.awt.Desktop;
import java.io.File;

public class OpenAppData {

    public static void main(String[] args) throws Exception {
        // Horribly platform specific.
        String appData = System.getenv("APPDATA");
        File appDataDir = new File(appData);
        // Get a sub-directory named 'texture'
        File textureDir = new File(appDataDir, "texture");
        Desktop.getDesktop().open(textureDir);
    }
}
于 2012-06-10T08:28:09.860 に答える
1

Runtime.exec(..)を使用してコマンドを実行します。ただし、すべてのOSに同じファイルエクスプローラーがあるわけではないため、OSを処理する必要があります。

ウィンドウズ:Explorer /select, file

マック:open -R file

Linux:xdg-open file

ネイティブファイルエクスプローラーでファイルを表示する目的でFileExplorerクラスを作成しましたが、オペレーティングシステムを検出するには、ファイルを編集する必要があります。 http://textu.be/6

注:これは、個々のファイルを公開する場合です。Desktop#open(File)Andrew Thompsonによって投稿されたように、ディレクトリを明らかにすることははるかに簡単です。

于 2012-06-10T08:29:34.377 に答える
0

Windows Vista以降を使用している場合は、 System.getenv("APPDATA");が返さC:\Users\(username}\AppData\Roamingれるので、一度上に移動して、このパスを使用する必要がありますfilechooser。単純に変更されたAndrewの例です。

    String appData = System.getenv("APPDATA");
    File appDataDir = new File(appData); // TODO: this path should be changed! 
    JFileChooser fileChooser = new JFileChooser(appData);
    fileChooser.showOpenDialog(new JFrame());

Windows XP、およびWindows Vista/7/8の詳細

于 2012-06-10T10:00:54.353 に答える