7
votes

Comment enregistrer quelque chose sur le bureau sans coder le répertoire dur?

Je me demandais comment obtenir Java pour enregistrer un fichier texte nommé hello.txt code> sur le bureau sans écrire xxx pré>

toute aide serait formidable. Donc, comme: p> xxx pré>

.. et le nom fichier.gettext () code> va juste être le "bonjour". p>

Mise à jour: Je pense que je serais en mesure d'utiliser le jfilechooser, alors cela fonctionnerait-il? P>

JFileChooser chooser = new JFileChooser();
chooser.setVisible(true);


9 commentaires

Si vous connaissez le système d'exploitation, vous pouvez utiliser un nom de raccourci de dossier utilisateur utilisateur pour la création d'un répertoire de bureau complet par rapport à la maison d'utilisateur.


C: \\ Users \\ Noaustin \\ Desktop ... Pouvez-vous être plus spécifique pour indiquer ce que vous voulez? Voulez-vous simplement obtenir le répertoire domestique de l'environnement ou est-ce quelque chose d'autre?


Est-ce ce que vous recherchez? Stackoverflow.com/ Questions / 1080634 / ...


Eh bien, je pense que pour Mac et Windows, et quel est le raccourci de dossier d'utilisateur à domicile pour Windows 7>


Je ne connais pas de solution simple d'OS-agnostique à cela. Vous devrez probablement créer une solution pour chaque plate-forme.


OK, mais quel est le raccourci de dossier d'utilisateur à domicile pour Windows 7?


Je vous recommande de lire le chemin de fichier de bureau à partir d'un fichier de configuration. Ensuite, il n'est pas codé dans votre programme.


Je ne sais pas ce que cela signifie ...


"Cela fonctionnerait-il?" Je pense que vous auriez pu essayer que dans le temps où j'ai attendu de répondre. Que s'est-il passé quand vous l'avez fait (essayez-le)?


3 Réponses :


7
votes
import java.io.File;

class FindDesktopOnWindows {

    public static void main(String[] args) throws Exception {
        if (System.getProperty("os.name").toLowerCase().indexOf("win")<0) {
            System.err.println("Sorry, Windows only!");
            System.exit(1);
        }
        File desktopDir = new File(System.getProperty("user.home"), "Desktop");
        System.out.println(desktopDir.getPath() + " " + desktopDir.exists());

        java.awt.Desktop.getDesktop().open(desktopDir);
    }
}
I forgot different Locales. Very fragile code (even for code that starts out OS specific). See my comment below re. OS X/JFileChooser.
  ..how the (System.getProperty("user.home"), "Desktop") works..
Oracle helpfully provides docs for this kind of thing.  See System.getProperty(String) & 
new File(String,String).I'll cede to an expert (or a user) on this, but I don't think OS X supports any application icons or document icons directly on the ..start screen, default look, whatever.. Probably better to offer the end user a JFileChooser pointing to user.home and ask them to save the document to the desktop (or wherever they feel like). 

4 commentaires

D'accord, expliquez comment le (system.geproperty ("utilisateur.home"), "bureau") fonctionne s'il vous plaît?


bien. Je ne trouve donc pas comment faire le jfilechooser ... et pourriez-vous donner un exemple sur les bases? Comme pour créer un jframe, mais faites-la dans la population et faites-la pouvoir sauver?


Eh bien, j'essaie de le faire gratuitement. son pour un projet d'école


+1 pour suggérant jfilechooser . Sur Mac OS X, l'utilisateur user.Home donne le chemin correct. "Desktop" est un nom de répertoire valide, même s'il a été localisé .



0
votes

User.Home fonctionne, mais il suffit de coder le répertoire.


0 commentaires

3
votes

Ce point que vous avez sur Desktop dir:

javax.swing.filechooser.FileSystemView.getFileSystemView().getHomeDirectory()


2 commentaires

Sous Windows, ce n'est pas Linux :(.


Essayer: File Desktop = Nouveau fichier (System.geProperty ("utilisateur.home"), "Desktop");