ディレクトリ(フォルダ)を取得して、何らかの形式の一意の数値識別子を導出する方法を調査しています。私は「文字列からハッシュへ」の方法を調査しましたが、鳩の巣原理は、すべての単一の文字列に対して真に一意の数を導き出すことは決してできないことを意味します。
一意のハッシュへの文字列は適切ではありません。
私は最近、自分の目標を達成するための他の手段を調査しているので、次の質問があります。
ディレクトリのタイムスタンプ-それらはどのように「ユニーク」ですか?ここで 説明されているように、「stat」によって報告されるタイムスタンプはどの解像度になりますか(2番目の投稿)?解像度が十分に小さい場合、Linuxシステムで複数のフォルダーがまったく同じタイムスタンプを共有することは可能ですか?
誰かが共有したい他の方法/テクニックを持っているなら、私は聞いてうれしいです:)
編集1これまでに投稿された回答に応じてユースケースを明確にするために:私はAndroidプラットフォームで作業しているため、ファイルシステムは他のプラットフォームにリンクされていません(もちろん、Micro SDカードなどの取り外し可能なメディアを除く)。
各パスをデータベースに挿入していますが、テーブルをクエリするときに文字列の比較を避けようとしています。マップ/ハッシュマップの使用はここではオプションではありません。はい、パス自体は一意ですが、理想的には、パス自体ではなく、テーブルのクエリに使用できる数値識別子が必要です。識別子もパスごとに一意である必要があります。std :: collateを試してみましたが、ハッシュ内で多くの衝突があったことがわかりました(20、000パスのデータセットで約100回の衝突が発生します)。さらに驚いたのは、アプリケーションを実行するたびにハッシュが大きく異なるように見えたことです。どういうわけか種まきなのかな?
どうもありがとう、P