Я создал простую программу, которая запрашивает у пользователя имя папки, в которой позже будут скопированы некоторые файлы. Проблема заключается в том, что имя папки будет содержать нелицовые (греческие) символы. И хотя папка создается с правильным именем и без ошибок, когда я храню ее AbsolutePath в String, греческие символы получаются так: ?????? _22-03-2012. Поэтому, когда я пытаюсь использовать сохраненный путь для отправки скопированных файлов, я получаю ошибку, потому что java не может правильно прочитать путь!Кодирование пути к файлу Java?
Любые идеи? (Очевидно, я новичок в Java, так голые со мной плз!)
package newOrderAndXCopy;
import java.io.File;
import javax.swing.JOptionPane;
import initiate.*;
public class NewOrder {
private String orderPath = null;
//constructor
public NewOrder() {
if(newOrderName()) {
File nO = new File(orderPath);
nO.mkdir();
}
}
public boolean newOrderName() {
boolean name = false;
int counter = 3;
while(counter > 0) {
String test = JOptionPane.showInputDialog("Here I ask the user to give the order name with this form -> ΠΑΡΑΛΑΒΗ ΧΧ-ΧΧ-ΧΧΧΧ (π.χ. ΠΑΡΑΛΑΒΗ 12-04-2013):");
if(!test.matches("ΠΑΡΑΛΑΒΗ \\d{2}-\\d{2}-\\d{4}")) {
JOptionPane.showMessageDialog(null, "Wrong name!", "Error", JOptionPane.ERROR_MESSAGE);
counter--;
}
else {
//replace the space with underscore
String rep = Config.savesPath + test.replaceAll(" ", "_") + "/";
File no = new File(rep);
if(!no.exists()) {
orderPath = rep;
--> Config.orderPath = no.getAbsolutePath(); <--
/*This part is where it gets messy. The folder is created but this value is wrong so I can't use it later!*/
name = true;
JOptionPane.showMessageDialog(null, "The order folder was created!!", "Success!", JOptionPane.INFORMATION_MESSAGE);
break;
}
else {
JOptionPane.showMessageDialog(null, "The order with this name already exists!Pick another Name!", "Error", JOptionPane.ERROR_MESSAGE);
}
}
}
return name;
}
}
Это может быть проблема отображения, а не проблема с тем, как данные хранятся в вашем файле «Файл». Можете ли вы показать код, который демонстрирует, как вы создаете файл и как вы печатаете путь? –