Créer un dossier et un fichier avec Java sous Ubuntu
Voici ce que je veux faire:
- Vérifier si un dossier existe
- Si elle n'existe pas, créez le dossier
- Si il fais n'existe rien
- Enfin créer un fichier dans ce dossier
Tout fonctionne bien sous Windows 7, mais quand je lance l'application dans Ubuntu, il ne crée pas le dossier, il est juste de créer le fichier avec le nom du dossier, par exemple: (mon nom de fichier est xxx.xml et le dossier est d:\temp, de sorte que dans Ubuntu, le fichier est généré à d: avec le nom de temp\xxx.xml). Voici mon code:
File folder = new File("D:\\temp");
if (folder.exists() && folder.isDirectory()) {
} else {
folder.mkdir();
}
String filePath = folder + File.separator;
File file = new File(filePath + "xxx.xml");
StreamResult result = new StreamResult(file);
transformer.transform(source, result);
//more code here
\
n'est pas le bon séparateur pour les systèmes linux et unix. Essayez d'utiliser le séparateur universel/
- pour les nom d'utilisateur
- essayez
File folder = new File("/home/tmp");
au lieu deFile folder = new File("D:\\temp");
- double possible de Créer un Nouveau dossier à l'aide d'un Programme en Java sur Windows et Linux
- S'il vous plaît, acceptez l'une des opérations suivantes réponse à votre question est remplie (même si c'est pas le mien, évidemment)
Vous devez vous connecter pour publier un commentaire.
Vous directory (D:\temp) nos approprié sur Linux.
S'il vous plaît, pensez à utiliser linux Système de Fichiers et les Fichiers.SÉPARATEUR constante :
N'ai pas essayé, mais devrait fonctionner.
D:\something
linux crée un dossier nomméD:\something
dans votre répertoire utilisateur (essayé)root="/";
- Il pas une bonne solution parce que pas chaque utilisateur peut écrire àroot
. De plus correct d'écrire à/tmp
ou le répertoire de base.Linux n'utilise pas les lettres de lecteur (comme le D:) et utilise des slashes ( /) comme séparateur de fichiers.
Vous pouvez faire quelque chose comme ceci:
D:\temp
n'existe pas dans les systèmes linux (ce que je veux dire, est-il l'interprète comme si il s'agissait de tout autre foldername)Dans les systèmes Linux le fichier élément de séparation est
/
au lieu de\
comme dans le cas de Windowsla solution est donc :
au lieu de
D:\something
linux crée un dossier nomméD:\something
dans votre répertoire utilisateur (essayé)Avant Java 7, le Fichier API a quelques possibilités de créer un fichier temporaire, en utilisant la configuration du système d'exploitation (comme les fichiers temporaires sur un disque RAM). Depuis Java 7 utilisation des fonctions de l'utilitaire de classe Fichiers.
Considérer à la fois les solutions à l'aide de la getProperty méthode statique de la classe System.
Sur les systèmes de type Unix logique n'a pas de disques. Vous pouvez essayer de créer sur
/tmp
ou/home
Ci-dessous le code pour créer
temp
dirrectory dans votre répertoire home:ou, pour
/tmp
- système de temp dicecrory. La majorité des les utilisateurs peuvent écrire ici:Depuis Java 7, vous pouvez utiliser le Fichiers classe utilitaire, avec la nouvelle Chemin classe. Noter que la gestion des exceptions a été omis dans les exemples ci-dessous.
ce couvre le cas générique, créer un dossier s'il n'existe pas et un fichier sur ce dossier.
Dans le cas où vous voulez vraiment créer un fichier temporaire, comme écrit dans votre exemple, vous avez juste besoin de faire ce qui suit:
À noter qu'avec cette méthode, le nom de fichier correspond pas exactement au préfixe que vous avez utilisé (
xxx
, dans ce cas).Encore, étant donné que c'est un fichier temporaire, qui ne devrait pas d'importance du tout. Le DELETE_ON_CLOSE garantit que le fichier sera supprimé lors de la fermeture.