Como obter identificador para arquivo em disco

10 respostas
M

Tudo bem, pessoal?

O meu problema é o seguinte:
 - Salvo o arquivo A em um local do disco. Como posso saber se o arquivo devolvido para o repositório é o arquivo A salvo anteriormente, mesmo que com o conteúdo alterado, e não um arquivo B renomeado?

 Na verdade o que eu preciso é obter um identificador de arquivo que esteja gravado no próprio sistema de arquivos.
 Vocês têm idéia de alguma API que me permita extrair tal tipo de informação?
 Estou aberto a sugestões.

 Abração,

      Mick.

10 Respostas

M

Tudo bem, pessoal?

Encontrei uma solução: vou utilizar uma outra linguagem para ter acesso à API do sistema operacional e obter o identificador do arquivo. Depois aciono essa classe através da interface nativa.

 Abração,

      Renato.
Luca

Olá

E que tal calcular o CRC dos arquivos e comparar?

É bem difícil haver coincidência de CRC32.

[]s
Luca

louds

Olha a data de criação

M

“Luca”:
Olá

E que tal calcular o CRC dos arquivos e comparar?

É bem difícil haver coincidência de CRC32.

[]s
Luca

Tudo bem, Luca?

 O CRC é alterado quando modificamos o conteúdo do arquivo. Infelizmente essa verificação não pode levar em conta alterações.

 Valeu a dica.

 Abração,

      Mick.
M
Beleza, Louds?

 A data de criação, por não ser um identificador, realmente poderá ser utilizada em situações nas quais a necessidade de verificação seja um pouco mais "branda".

 Valeu, cara.

 Abração,

      Mick.
louds

Oque voce quer fazer é conceitualmente errado.

Não existe esse seu “identificador único universal” para arquivos, acho que voce está tentando resolver o problema na camada errada da aplicação. Ou modelou erroneamente o sistema a precisar disso.

M

“louds”:
Oque voce quer fazer é conceitualmente errado.

Não existe esse seu “identificador único universal” para arquivos, acho que voce está tentando resolver o problema na camada errada da aplicação. Ou modelou erroneamente o sistema a precisar disso.

Por partes:

 1 - O identificador que o sistema operacional fornece para cada arquivo gravado em disco cobre a minha necessidade.
 2 - Certamente essa não é a camada ideal para tratar essa questão.
 3 - Não fui eu quem fez o projeto. Apenas fui chamado para apagar o incêndio.

 Abração,

      Mick.
cv1

O unico identificador desse tipo que eu conhececo eh o nome completo do arquivo (path + nome)… ou eu estou esquecendo de alguma coisa?

louds

No linux voce poderia usar o inode, mas é uma garantia fraca de identidade, no windows nem imagino. Fora isso, se o projeto for linux, estou muito curioso para saber.

Hmm, com XFS ou NTFS (versão do win2k em diante) tem um esquema de atributos para arquivos, eles poderiam ser usados, acho.

Luca

Olá

CV, por mim vc está certo. O que sei sobre “universal naming convention” (UNC) é que é dado por: “\OtherComputer\Directory\Filename.ext”.

[]s
Luca

Criado 12 de maio de 2004
Ultima resposta 15 de mai. de 2004
Respostas 10
Participantes 4