bonjour,


dans mon application j'utilise un JFileChooser avec un filtre ".dat" pour enregistrer les fichiers. Là deux cas de figure se présentent :
1- L'utilisateur précise l'extension ".dat" du fichier et dans ce cas pas de souci, je peux vérifier l'existence du fichier ou non ;
2- L'utilisateur ne donne pas l'extension du fichier : et dans ce cas c'est au programme de l'ajouter puis de vérifier si le fichier avec l'extension existe. Et c'est dans ce cas que je bloque


Voilà mon code : il fonctionne très bien dans le cas n°1 mais pas dans le cas 2 (c'est à dire si l'utilisateur ne précise pas l'extension du fichier) et pour cause je fais un file.exists() avant d'ajouter l'extension.

Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
File file = null;
RandomAccessFile datFile = null;
String strFile = new String();
int response;
 
response = fc.showSaveDialog(this);
file = fc.getSelectedFile();
 
if (response==JFileChooser.APPROVE_OPTION)
{
 
 
	if (file.exists())
	{
		System.out.println("le fichier existe");
	}
	else
	{
		strFile = file.getPath();
 
		if (!file.getName().toLowerCase().endsWith(".dat"))
		{
			strFile = file.getPath().concat(".dat");
		}
		try
		{
			datFile = new RandomAccessFile(strFile, "rw");
			//.....
		}
		catch (FileNotFoundException ex)
		{
			Logger.getLogger(ScenarioManager.class.getName()).log(Level.SEVERE, null, ex);
		}
	}
}

Comment je peux modifier le code de telle sorte que si l'utilisateur ne donne pas l'extension du fichier, le programme l'ajoute ? (Ajout de l'extension juste avant l'appel de la méthode file.exists()).


--------------------
Je pensais faire comme ceci, mais j'avoue que créer un nouvel objet File simplement pour lui ajouter une extension me gêne un peu. Il n'y a pas une autre méthode ?

Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
File file = null;
RandomAccessFile datFile = null;
int response;
 
response = fc.showSaveDialog(this);
file = fc.getSelectedFile();
 
if (!file.getName().toLowerCase().endsWith(".dat"))
{
	file = new File(file.getPath()+".dat");
}
 
if (response==JFileChooser.APPROVE_OPTION)
{
	if (file.exists())
	{
		System.out.println("le fichier existe");
	}
	else
	{
		try
		{
			datFile = new RandomAccessFile(file, "rw");
			//.....
		}
		catch (FileNotFoundException ex)
		{
			Logger.getLogger(ScenarioManager.class.getName()).log(Level.SEVERE, null, ex);
		}
	}
}


et l'objet RandomAccessFile ne possède pas de méhtode exists() ou de méthode renvoyant un objet File.