Portal SAMP
[Ajuda] Existencia de arquivo (fexist) - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Existencia de arquivo (fexist) (/showthread.php?tid=2389)

Páginas: 1 2


Existencia de arquivo (fexist) - MarcosBrazz - 15/05/2022

Bom dia, amigos!

Bom, tenho um sistema de inventario em meu servidor, e carrego os dados do salvamento(em pasta) no login.
Porém oque vem acontecendo é que:
Se tenho o arquivo 'Brazz.ini' criado. se eu utilizar 'brazz.ini' é retornado true no fexist, logo se eu criar uma conta com letras minusculas de uma existente e tiver o arquivos com os dados do inventario la, vai carregar para a conta com as letras minusculas 'brazz'. pois é semelhante a 'Brazz', testei com a include SA-MP FileManager porém sem sucesso.

Eu criei a pasta 'Teste' com o Arquivo 'Brazz.txt' dentro:
Teste:
Código:
if(file_exists("scriptfiles/Teste/Brazz.txt")){
        print(" Arquivo 'Brazz.txt' Existe");
    }
    else{
        print(" Arquivo 'Brazz.txt' Não Existe");
    }
    if(file_exists("scriptfiles/Teste/brazz.txt")){
        print(" Arquivo 'brazz.txt' Existe");
    }else{
        print(" Arquivo 'brazz.txt' Não Existe");
    }
Retorno:
Código:
[10:42:26]  Arquivo 'Brazz.txt' Existe
[10:42:26]  Arquivo 'brazz.txt' Existe

Alguem teria alguma ideia de como fazer essa diferença nas letras?


RE: Existencia de arquivo (fexist) - CoelhaO_LokaO - 15/05/2022

strcmp (const string1[], const string2[], bool:ignorecase=false, length=cellmax)

obs: bool:ignorecase
Se true ignora diferença entre letras maiúsculas e minúsculas, se for false não faz esta diferença.


RE: Existencia de arquivo (fexist) - MarcosBrazz - 15/05/2022

(15/05/2022 11:43)CoelhaO_LokaO Escreveu: strcmp (const string1[], const string2[], bool:ignorecase=false, length=cellmax)

obs: bool:ignorecase
Se true ignora diferença entre letras maiúsculas e minúsculas, se for false não faz esta diferença.

Ja pensei em utilizar isso, porém não existe nenhuma função que retorne o nome real do arquivo para a comparação (tendo em vista que letras maiusculas ou minusculas dão no mesmo).


RE: Existencia de arquivo (fexist) - RodrigoMSR - 15/05/2022

No Windows o sistema de arquivos não diferencia maiúsculas/minúsculas. Use Linux para que haja essa diferença.


RE: Existencia de arquivo (fexist) - White_Blue - 15/05/2022

Recomendo que use DOF2 para fazer salvamentos pois é eficaz e simples.


RE: Existencia de arquivo (fexist) - MarcosBrazz - 15/05/2022

(15/05/2022 14:03)White_Blue Escreveu: Recomendo que use DOF2 para fazer salvamentos pois é eficaz e simples.

O salvamento é em DOF2, esse é um exemplo usando a include SA-MP Manage., DOF2_FileExists retorna fexists, que da no mesmo.


RE: Existencia de arquivo (fexist) - CoelhaO_LokaO - 15/05/2022

(15/05/2022 11:47)MarcosBrazz Escreveu:
(15/05/2022 11:43)CoelhaO_LokaO Escreveu: strcmp (const string1[], const string2[], bool:ignorecase=false, length=cellmax)

obs: bool:ignorecase
Se true ignora diferença entre letras maiúsculas e minúsculas, se for false não faz esta diferença.

Ja pensei em utilizar isso, porém não existe nenhuma função que retorne o nome real do arquivo para a comparação (tendo em vista que letras maiusculas ou minusculas dão no mesmo).

tem que armazenar o caminho como se fosse uma string e comprar


RE: Existencia de arquivo (fexist) - xbruno1000x - 15/05/2022

Muda o nome do arquivo, adiciona um 'a' a mais ou algo assim.


RE: Existencia de arquivo (fexist) - MarcosBrazz - 15/05/2022

(15/05/2022 18:58)xbruno1000x Escreveu: Muda o nome do arquivo, adiciona um 'a' a mais ou algo assim.

É uma boa idéia Bruno, mas daria no mesmo, pois quando fosse verificar se o arquivo existe iria retornar true.

A Solução mesmo foi bloquear a criação de contas com nomes semelhantes (verificar no registro se ja existe a conta independente das letras), o que eu não queria fazer, mas foi necessário.

Obrigado a todos.


RE: Existencia de arquivo (fexist) - Dr Editor - 16/05/2022

Na verdade você pode usar um plugin que gerencia arquivos.
Em termos leigos é um "DOF2" aprimorado onde você tem acesso a leitura de arquivos e pastas do diretório e, sendo assim, consegue realizar comparações precisas entre os nomes de arquivos existentes.
SA-MP-FileManager