2016-12-04 2 views
-1

私が開発しようとするソフトウェアの一部は、ファイルトラッカーです。映画やシリーズのファイル(500 MB〜50 GB)を追跡します。それは ムービー/シリーズファイルトラッキングまたはウォーターマークC#

  • は、ネットワーク共有上
  • を移動し、別のディスクに移動し、同じディスク上に移動し、彼らは

    • であっても、ファイルを追跡する必要が

  • などと改名しましたそのうちの1つが発生した場合、すべてのatachedデバイスをスキャンし、 "失われた"ファイルを再インデックスする必要があります。しかし、その継ぎ目は私が思ったよりもはるかに困難である。私は何度も挑戦してきましたが、本当にうまくいくものはありませんでした。 FielSize
  • 改名上> doesntの仕事
  • - - >プリティ不安定
  • ハッシュ -

    • FileSystemID - >のみの単一のディスクに
    • ファイル名を作品:私はいくつかのことを試してみましたが、彼らは常に、少なくとも1つの基準が欠けています>非常に高価です。低電力マシンでは動作しません。
    • Windows-APIコードパック - >決して保存することはできません。いくつかの時間を除いて、時にはそれは動作するために継ぎ目がありますが、それはdoesntです。開発中止の継ぎ目
    • 透かしファイル - >ファイルの末尾にGUIDを追加することはできますが、ファイルを変更すると、実際に大きなファイルでは縫い目が緩やかになります。

    もしそれらが組み合わされると、それは問題を解決することができますが、それはコードと計算時間においてかなり複雑です。私はWatermarkingで作った最高の経験。おそらく、より良いパフォーマンスでGUIDを追加して読む方法がありますか?しかし、私には大きなファイルではそれが本当に遅いことがわかります。

    私は本当に迅速かつ一貫性のあるファイルを識別する方法が必要です。識別子は紛失してNTFSとext#で動作してはなりません。私は私の複雑な質問にいくつかの素晴らしいヒントを得ることを願っています。 ありがとう:)

  • +0

    これはかなり一般的なインタビューの質問ですので、既にそれについての十分な議論を見つけることができるはずです...あなたがそれを使用して大丈夫ならばビン検索 - https://www.bing.com/search?q = google +インタビュー+質問+ファイル+複製+ハッシュ –

    +0

    あなたが興味を持っている唯一のものがファイルへの追加が速ければ - これはhttp://stackoverflow.com/questions/2398418/how-append-data- to-a-binary-file(ファイルに*を付けると、ファイルを変更してファイル形式を破ることができない問題を解決していないことに注意してください) –

    答えて

    1

    「不安定」とは、ファイルサイズに関してはどういう意味なのでしょうか。

    私の提案は(それはOSによってキャッシュされ、非常に迅速に重複チェックを可能にしているとして)

    は、その後、あなたが読んでいないためにFileStreamをを使用することができ、インデックスの最初の手段として、バイト単位でファイルサイズを使用することですフルファイルですが、ファイルの最初の1 MB(またはあなたが選んだもの)をハッシュします。これはかなり速くなければなりません。

    完璧ではないにしても、これはファイルをかなり正確に追跡するはずです。しかし、完璧にしたい場合は、完全なファイルをハッシュすることが必須です。

    NTFSでは、「代替ストリーム」を使用してファイルにIDを追加できますが、これらはユーザーが自由に追加または削除することができ、NTFS領域を離れるときに失われます。

    +0

    同じサイズの別のファイルかもしれないので、不安定です。そして、この値に何が起こるのかわからないので、他のディスクに移動されます。 ほとんどのファイルが失われた場合に再ハッシュする必要があるため、数TBの完全なハッシュは大規模なサーバーでも高価です。 "alternatice Streams"について何も聞いたことがありません。興味深いと思うよ – Stefm

    +0

    あなたが特にそれらの値を求めない限り、ファイルサイズは(少なくともWindowsでは)クラスタサイズや圧縮の影響を受けません。したがって、ファイルサイズは実際のコンテンツバイト数である必要があります。したがって、かなり正確です。あなたが部分ハッシングを追加した場合、あなたはすばらしいIMHOでなければなりません – Martin

    関連する問題