// Dividend Limit check or increase the Dividend
if (dival == 10) {
writer.println("Divident has reached it Limit !");
i++;
// update the file name
String upath = "channel_" + i;
System.out.println(path);
// find channel_1 and replace with the updated path
if (path.contains("channel_1")) {
path = "D:/File Compression/Data/low_freq/low_freq/house_1/"
+ upath + ".dat";
} else {
JOptionPane.showMessageDialog(null, "Invalid File Choosen");
System.exit(0);
}
dival = 10;
} else {
dival = dival + 10;
writer.println("Dividen:" + dival);
}
эти линии имеют рекурсивный метод. первый раз это дает правильный путь:Путь к файлу по файлу с:/->
D:/File Compression/Data/low_freq/low_freq/house_1/channel_2.dat
Но на втором называют это переворачивает слэш на обратный слэш:
D:\File Compression\Data\low_freq\low_freq\house_1\channel_1.dat
работает нормально, если я не использую условие.
if(path.contains("channel_"))
Код, который вы опубликовали, не проявляет этой проблемы. Откуда берется «путь»? NB никогда не нужно использовать обратную косую черту в имени файла Java. – EJP
Путь @EJP исходит из String path является статическим, и он находится в другом классе, поэтому я называю его именем класса и использую этот путь здесь. здесь код 'общественного недействительными actionPerformed (ActionEvent arg0) { \t \t \t \t JFileChooser Chooser = новый JFileChooser(); \t \t \t \t FileNameExtensionFilter фильтр = новый FileNameExtensionFilter ( \t \t \t \t \t \t "Файл данных", "DAT"); chooser.setFileFilter (фильтр); int returnVal = chooser.showOpenDialog (getParent()); if (returnVal == JFileChooser.APPROVE_OPTION) { path = chooser.getSelectedFile(). GetAbsolutePath(); \t \t \t \t} \t \t \t} ' – Waqas