Italian problema con maiuscole e minuscole con istruzione File.Exists

3394509365

Active Member
Licensed User
Longtime User
uso l' istruzione:
B4X:
If File.Exists(FullPath, SongTitleFinito & ".jpg") = False Then

per vedere se una foto esiste primadi salvarla di nuovo.

Se esiste non deve salvarla.

Hoil problema che non fa distinzione tra lettere maiuscole e minuscole.

Ho salvato per esempio il file aaa.jpg e voglio salvare il file AAA.jpg (che per me sono due file differenti), ma mi dice che già esiste.

Esiste un metodo per poterli salvare entrambi ?
 

giannimaione

Well-Known Member
Licensed User
Longtime User
scusa, tu hai due file "differenti" tra loro ma che hanno nomi simili/uguali tipo AAA.jpg e aaa.jpg?
in questo caso non c'è molto da fare;

diversamente se per te non fa differenza tra AAA e aaa, allora considera di convertire tutto in MAIUSCOLO o minuscolo
 

LucaMs

Expert
Licensed User
Longtime User
https://stackoverrun.com/it/q/1633312

In quella pagina:

While Linux, and therefore also Android, normally is case-sensitive when it comes to filenames, FAT file systems, which are often used on SD cards, memory sticks etc., are case-insensitive. Therefore, Android will not differentiate between cases when it is handling files on these file systems.

So if you have two files, /sdcard/file (on the SD card) and /data/file (on the internal file system), you will get the following results:

new File("/sdcard/file").exists(); // true
new File("/sdcard/FILE").exists(); // true, /sdcard is a case-insensitive file system
new File("/data/file").exists(); // true
new File("/data/FILE").exists(); // false, /data is a case-sensitive file system
 

giannimaione

Well-Known Member
Licensed User
Longtime User
si, va bene case-sensitive ma tutto dipende da File.Exists come esegue il "raffronto"
 

3394509365

Active Member
Licensed User
Longtime User
il fatto è che io prendo da una tabella i campi e poi in base al nome ci costruisco il file.jpg.

Il problema lo devo risolvere a monte quindi non devo permettere che si possa creare un campo AAA ed uno aaa.

Credo sia la soluzione più indolore

dovrei dire alla tabella che il campo non ammette duplicati giusto ?
 
Last edited:

3394509365

Active Member
Licensed User
Longtime User
e invece li prende lo stesso sia aaa che AAA. :mad::mad::mad:

Alla fine ho usato sqlLiteStudio ed ho inserito nella colonna della tabella che mi serviva il COLLATE NOCASE
 
Last edited:
Top