• 締切済み

FAT フォマット

スマートメデア32MB場合 短いファイル名場合は確認できます (半角 8文字 全角 4文字) 長いファイル名の格納ですが 半角英数の場合ルートデレクトリ領域を直接 アクセスすると               。 43 62 00 00 00 .省略。。。   b FF FF FF FF FF 。  。。。 02 63 00 64 00 .  。。。   c d 69 00 6A 00 6B 。  。。。  i j k 01 61 00 6E 00 。  。。。   a n 31 00 36 00 30 。  。。。   1 6 41 4E 49 31 32 。  。。。  ANI1 B1 2A B8 B7 2A 。  。。。 となりファイル名が分かります ところが 全角 英数 漢字 かなになると 41 A2 30 EB 30 。  。。。 2A 68 00 00 FF 。  。。。  83 41 83 8B 83 。  。。。アルプ B2 2A B2 2A 00 。  。。。  となりファイル名が4文字しか分かりません 半角 全角 では格納のし方が違うのでしょか? 残りのDATAはどこに格納されているのでしょうか 多分FDDでも同じと思います。

  • fchyu
  • お礼率25% (1/4)

みんなの回答

  • shigatsu
  • ベストアンサー率26% (511/1924)
回答No.3

VFATですね。 ややこしいので参考URL見てください。 他にもVFATで検索すると開設ページは沢山有ると思います。

参考URL:
http://www.linux.or.jp/JF/JFdocs/Filesystems-HOWTO-3.html
fchyu
質問者

お礼

有難うございます。VFATで検索 ですね 参考URL 詳しくみてませんが。参考になると思います とりあえず 御礼先にと思まして。 今後とも色々と御世話になると思います 何も分からない初心者のために 有難うございます

  • alfeim
  • ベストアンサー率58% (114/195)
回答No.2

FATでは8+3の標準ファイル名に続くファイルエントリにファイル属性をread only, hidden, system, volume, directory, archiveの各属性ビットをオンにして(間違ってる可能性あります。0xffになってたのかもしれません。どちらにせよ通常のMS-DOS運用では絶対出来ないファイルエントリだったのは確かです)、ロングファイルネームをUNICODEとして保存してあります。 通常command.comの内部コマンドであるdirでは見る事は出来ません。 windows下ではファイルシステムが隠してしまうので見る事は出来無いと思います 生DOS下でFD(A.Idei氏作成のフリーウェア。Explorerみたいなもの。http://neon.genesis.ne.jp/~idei/fd/ を参照)などのファイルシステムを使わずFATを直接読んでファイルエントリを表示するアプリケーションなどであればvolumeラベルなどとして表示されるでしょう。(私はPC-9801系マシンでFD Version2.42 + riパッチ を使っていました) 構造を見たいのであればディスクダンプ出来るソフトでFAT領域をダンプするか、ディスクを直接読むようなコードをプログラムで組んでやる必要があるでしょう。 FAT自体の資料としては「アスキー ラーニングシステム 応用MS-DOS 村瀬康治 著」か「CQ出版社 MS-DOSプログラマーズバイブル 阿部英志 著」あたりを参照してください。Longfilenameの部分に関しては確か当時のFilerの技術解説Documentあたりに載ってたと思います どのソフトだったかは忘れてしまいましたが・・・

noname#25358
noname#25358
回答No.1

 FATというのはもともと、8文字+拡張子3文字形式でファイルを格納するような仕様になっています。  よって、ディスク上では「アルプ~1.ANI」という形式で格納されています。  ロングファイル名がどこに格納されているかは分かりません。おそらくは、ディスク上に特殊な領域を作ってるんじゃないかと思うんですが。

関連するQ&A

  • 全角の英数

    全角の英数をだせなくて困っています。 普通は、「A/ち」の隣の「Capslock/英数」キーをおせば ひらがなと、全角英数「A」とを切り替えできますよね? でも、それを押すと本来 半角/全角キーを押すとでてくるハズの 「_A」とでてどうしても半角になってしまいます。  ↑Aの前は本当はこれじゃない、やつ(わかりにくくてすいません) 左上の半角/全角キーを押すとタスクバーには              「 A」とでます。               ↑スペースの後半角のAの文字 非常にうまく伝えられないのが悔しいんですが、 こんな文章でもご理解できていただけたかた、どうかご回答よろしくお願いします。 ちなみに、F7を押したりする方法では全角にできます。 windowsXP / Microsoft IME スタンダード2002

  • FrexibleRenamerで【全角→半角】の正規表現は?

    FrexibleRenamerで【全角→半角】の正規表現は? FrexibeRenamerにあらかじめ用意されている【全角→半角】で変換したところ、 !#$%&’() _などの文字が変換されませんでした。 【全角→半角】は英数に限られているのでしょうか。 正規表現を使おうとしたのですが【全角→半角】の指定方法がわかりません。 これらの記号を【全角→半角】する方法を教えて頂けないでしょうか。 階層丸ごと全フォルダ名と全ファイル名を変更したいのでFrexibleRenamerを使いました

  • 配列への文字列の追加ってどうやって追加するの?

    配列に文字列をいれたいのですが char a[100]; sprintf(a,"AB"); と書くと a[0]にAが a[1]にBが a[2]に\0が格納されますよね。 「配列に一度格納された文字列に新たな文字列を追加」したいのです。 つまり この\0を上書きしてa[2]から CD を追加し、結果 a[0]にAが a[1]にBが a[2]にCが a[3]にDが a[4]に\0が 格納されているようにしたいのです。 半角英数だったらできるのですが全角だとどうやるのでしょうか。 やりたい事は以下のようなものです。 "あい"を1度目の処理で配列に文字列を格納し、次の処理で"うえ"を追加し、 配列aをprintfするとき「あいうえ」が出力されるようにしたいのです。 どなたか教えてください(>_<

  • CString型 全角半角を意識せずに「1文字」ずつ取り出す

    CString型の文字列に格納されている文字を1文字ずつ取り出したいです。 ただし半角なら1バイト単位で、全角なら2バイト単位で、という風に分離したいです。 半角だけなら、str[0] str[1]...という風に取り出せますが、 全角が混じっていると、1バイト目、2バイト目と分離されてしまいます。 その文字が半角か全角かを判断して、半角なら1バイト、全角なら2バイト同時に取り出すロジックを、下記のような感じの関数として作りたいです。 CString ripString(CString str,int index){ //ソースとなる文字列、n文字目 /*~処理~*/ return 文字列; } たとえば"あaいbうcえdおe"という文字列を入れると、 CString str="あaいbうcえdおe"; ripString(str,0) →結果 "あ" ripString(str,1) →結果 "a" ripString(str,2) →結果 "い" ripString(str,3) →結果 "b"  ・  ・  ・   こういうことをするのに良い方法はありますか? 1バイトごとのそれぞれの文字自身が、 ・半角文字なのか ・全角文字の前1バイトなのか ・全角文字の後1バイトなのか これをプログラム的に判別する方法があればいいのですが・・・悩んでいます。

  • 添付ファイルのファイル名の文字が・・・

    添付ファイルが「テスト.txt」のファイル名の文字が半角にて送信し 添付ファイルが「テスト.txt」のファイル名の文字が半角にて受信するには、どのようにすればいいのでしょうか? 下記の環境にてメールを送信した場合 パソコンA(OS:win2000):**-a@mail.co.jp・・・送信側  添付ファイルが「テスト.txt」のファイル名の文字が半角にて送信 パソコンB(OS:win98):**-b@mail.co.jp・・・・・受信側  添付ファイルが「テスト.txt」のファイル名の文字が全角にて受信 されます  また、パソコンAにて、送信後、送信済みアイテムを確認すると「テスト.txt」とファイル名の文字が全角になっていました

  • 入力モードがおかしい

    通常日本語で入力していて、文章中に英文字を入れる場合、今までは 「半角英文字」であれば「半角全角キー」、「全角英文字」であれば「英数キー」を押して入力していましたが、突然、昨日からこの通りに出来なくなってしまいました。現在の状態は、「半角全角キー」を押すと「半角英文字」は打てるのですが入力モードは「直接入力」になっています。 「全角キー」を押すと入力モードは「半角英数」になります。 従来の様に「英数キー」で「全角英文字」を打つにはどうしたら良いでしょうか?

  • エクセルのセルに入力文字の制限

    エクセルのセルに文字の制限をしたいのですが、例えばA1セルには半角英数、B1セルにはひらがな、C1セルには半角カタカナという感じでキーボートの半角/全角や英数キーを変更しなくても入力出来る方法がありましたら教えて下さい。宜しくお願いします。

  • 全角になりません・・・

    急に、文字を入力しても、半角英数しか出なくなってしまいました。 「半角全角キー」を押しても画面右下は「 A」のままで、 Aを押して「ひらがな」を押すと「あ」に変わるのですが、実際文字を入力しても半角英数のまま変わりません。 どうしてでしょうか? 教えてください

  • 半角英数

    半角英数 Shift+英文字で 「半角英数」が出てたのですが 「全角英数」が出るようになってしまいました。 Shift+英文字で半角英数を出すには どうすればいいですか?

  • フォルダ名を日本語にする場合の問題

    コンピュータやOSは基本舶来からなのかもしれませんが、フォルダ名、ファイル名は半角英数だったと思います。それを日本語全角にする場合、どのような不具合が生じるでしょうか。 Windows10, Linux, MACの別があるものでしょうか。 自分の意志に反してフォルダ名が全角で決めうちされている場合があります。ソフトウェアを介しての利用だったらまあいいのですが、コマンドプロンプトを使って仕事をしたりしますが、フォルダ名をキー入力して移動する場合、キーボードで半角・全角の変更をしなければなりません。ずっと半角英数でやっていたので、いいのかなと思いますが。一方、そのような垣根が取り払われ、全角でも完全にOKという考え方もあるのかもしれないとも思うのですが。 ケースバイケースで決まった考え方はないのでしょうか。