これを使用して特定のフォルダーとサブフォルダーに画像を表示すると、すべてが「正常に動作」し、ファイルは次の形式で名前が付けられます。
17000.001 17000.002 18555.001 18542.001 1.001 1.002 1.003 1.004 .....
.xxx は拡張子です (名前が変更された TIFF)
プログラムは次のように動作します。
必要な数値を入力します。例: 17000 が必要です。17000 と入力すると、最初の .001 が画面に返され、他の .002、.003 とその数が返されます。次の画像ボタンと前の画像...
問題は、4 .004 以上の数字を検索しようとすると、最初の数字が表示されず、「ランダム」、.002、004 などと表示される理由がわかりません。 「パス」を取得するコード!! コードのために私を殺さないでください^^!
....
public void geraListaArquivos(String subdir, String matricula) {
String diretorio = "F:\\registro_sql\\Imagens\\Livro02" + "\\"
+ subdir + "\\";
String novaimagem = null;
File folder = new File(diretorio);
listOfFiles = folder.listFiles();
if (!folder.exists()) {
JOptionPane.showMessageDialog(null,"Não existe o diretório em que está tentando fazer a busca");
} else {
// JOptionPane.showMessageDialog(null, diretorio);
for (int i = 0; i < listOfFiles.length; i++) {
String matsonome[] = listOfFiles[i].getName().split("\\.");
for (int i2 = 0; i2 < matsonome.length; i2 = i2 +2) {
if(matsonome[i2].matches(matricula)) {
System.out.println(matsonome[i2] = "." + matsonome[i2+1]);
... the rest of the code, if the typed number image exist in the folder
配列の最初の部分が入力された数値と一致するかどうかを確認するために文字列 matsonome を編集します..
このようになります:
matsonome[0] = 17000
matsonome[1] = 001
matsonome[2] = 17000
matsonome[3] = 002
この場合、"System.out.println(matsonome[i2] = "." + matsonome[i2+1]);"
4未満であるため、正しい表示が表示されます
17000.001 17000.002
ただし、入力された数字が 4 つ以上の場合は、次のように表示されます (順不同):
xxxx.002 xxxx.001 xxxx.004 xxxx.003
どうして???
悪い英語でごめんなさい:(