2016-08-25 4 views
2

私は自分自身を隅に抱いてしまった - 私は古いmsdos/windowsシステム上にファイルとともに明示的に保管された8.3ファイル名を含む本当に古いdBaseテーブルを持っている。ファイルを含むLinux上で8.3名前付きファイルを見つける方法

私は今、ファイルとdBase(DBFファイル)ですが、dbの行と実際のファイルを結ぶリンクは8.3形式です。ファイルとdBaseファイルは、古いWindowsマシンからLinuxマシンにコピーされています。

{ "FILEID":1、 "dosname": "APPLE〜の1.JPGは"}、 { "FILEID":2、 "dosnameを" DBを含む行を有することになる例えば

。 "APPLE〜2.JPG"}

とどこかのファイルディレクトリ内のiの "appletree.JPG" と "リンゴのcomputer.JPG" を有していてもよいです。

どのようにどのようなものがわかりますか?

答えて

0

Windowsによって作成された8.3のファイル名について実際に話していると仮定すると、それは私が従うことができる何らかの種類の論理ですか(それは〜1とは何かを指示する英数字ソートのようなものですか?あまりにも難しくありません。

マイクロソフトでは、「長い」ファイル名が8.3の表記法にどのようにマップされているかを正確に説明する優れた仕様があります。

hereを参照してください。

だから座ることができます。あなたはマッピングツールを思いついて、 "長いファイル名"をDB行8.3のいとこにマップすることができます。

編集:上記のリンクは説明に過ぎませんが、必要なマッピングの正確なアルゴリズムではありませんが、おそらくthisアルゴリズムがあなたのトリックです!

+0

"Windowsは、必要に応じてファイル名を6文字に切り捨て、チルダ(〜)と数字を追加します。たとえば、作成されたそれぞれの固有のファイル名は"〜1 "で終わります。名前は "〜2"、 "〜3"などで終わります。---- " - ロングから8.3に変換すると情報が失われるため、逆変換はできません。 – NiRR

+0

@NiRRまあ、あなたは、アルゴリズム(http://lxr.free-electrons.com/source/fs/fat/namei_vfat.c?v=4.6#L308)を使ってディスク上のファイルを実行して、与えられたLFNとあなたは、マッピングを得るだろう – itisravi

+0

@itisraviあなたの入力のおかげで;それに応じて私の答えを更新しました。そして、あなたはそのような価値の入力を提供しました。私はあなたの2つの最も貴重な答えを選択し、それらをupvoted。 – GhostCat

関連する問題