- ベストアンサー
MS-DOSの2バイト文字のファイル名が扱えない
- MS-DOSで作成された2バイト文字のファイル名をWindowsにコピーしようとするとエラーが発生します。
- ファイル名が1バイト文字や漢字の場合は問題なくコピーできますが、αやmで始まるファイル名ではコピーできません。
- PC-9801上で一度ファイル名を変更してからWindowsにコピーするというワークアラウンドがありますが、大量のファイルがある場合には非効率です。どうすればMS-DOSで作成された2バイト文字のファイル名をそのまま扱えるようになるでしょうか。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>(「カレントディレクトリ」ではなく「ルートディレクトリ」ですね。) スミマセン書き間違えてました(汗… WinXP上で「αtest.txt」と「mtest.txt」と言うファイルをFDにつくり http://www.teclab.co.jp/download.html 上記のソフト(シェアウェアですが30日間の試用が可)を使って ディスクダンプでファイル名が「ΑTEST.TXT」と「MTEST.TXT」となっているのを 確認した後、同ソフトを使って”Α”(82 6C)と”M”(83 9F)をそれぞれ ”α”(83 BF)”m”(82 8D)に変更してファイルを開いたりコピーできるが 実験をした結果、ファイル名は正常に表示されているがコピーすることも開くことも 出来ない現象が再現できました。 恐らくWindowsXPがディレクトリエントリに小文字でファイル名が保存されていると うまく処理できず今回の様な現象を起こしたのではないかと思います。 http://support.microsoft.com/kb/288132/ja
その他の回答 (3)
- 121CCagent
- ベストアンサー率52% (15527/29843)
一度ディスクダンプを表示するソフトでWinXPのマシンからフロッピーに記録されているファイル名を確認していただけませんか? http://www.vector.co.jp/soft/win95/hardware/se072470.html 上記のようなソフトを使用して。(シェアウェアですがダンプを表示するだけならシェアウェアの料金を支払わなくても可能です) ファイルはカレントディレクトリに保存して方がファイル名が格納されているセクタを比較的見つけやすいと思います。 (当方で確認した限りですが2HD(1.4MBフォーマット)のFDで20番目ぐらいのセクタ、2DD(640KBフォーマット)で 5~6番目ぐらいのセクタにカレントディレクトリに保存したファイルのファイル名があるのを確認しました。) ファイル名の「α(ギリシア文字アルファ)」や「m(全角ローマ字小文字エム)」の部分は「Α(ギリシャ文字アルファ大文字)」 や「M(全角ローマ字大文字エム)」となってますでしょうか?それとも「α」「m」とそのままのでしょうか?
補足
(「カレントディレクトリ」ではなく「ルートディレクトリ」ですね。) 試した結果は後者です。MS-DOSで作成されたフロッピィ上は 全角小文字の「α」(16進数で 83 BF )と「m」(16進数で 82 8D )で記録されています。 つまり MS-DOS上では、ファイル名「m」とファイル名「M」をそれぞれ扱える(2つ保存できる)のに対し WindowsXP上では、操作で「m」で保存しても勝手に「M」(16進数で 82 6C )に変換されて保存される (mとしてもMとしてもフロッピ上では同じファイル名「M」になってしまう)ということでしょうか。 そうであれば「WindowsXPはファイル名に関しては下位互換だからあきらめろ」という結論だと理解します。
PC-9801, MS-DOS 3.3C と Win2000, Win98, Win95 では 4度のJIS改定で変わっててない「αやm」は影響を受けていません。 しかし外字領域にある「αやm」が日本語入力機構で第一候補になっているのでこちらが使われているかもしれません。確認してください。 Dir *.* > Filelist.txt dump Filelist.txt > filelist.dmp type filelist.dmp でコードがわかるはずです。 外字領域にある「半角サイズ」の「αやm」の使用です。これらを使用した場合PC-9801 - その他MS-DOS機の間で同様な問題が発生しました。 >indowsXP Home Edition Version 2002 Service ということですが国は「日本」になっていますか。韓国語か中国語かわからない(私のブラウザが極端に古いので表示できない)ファイル名をそのまま使ったらば(上記方法でコードから文字を調べようとした)ディレクトリにファイルが化けてしまいformat以外で消す手段がありませんでした。 英語モードになっていると確実にご質問のような状態になります。
補足
ご回答ありがとうございます。 半角や外字領域ではありません。 質問にも前回補足にも書いていますように全角のαやmです。 PC-9801とFMR-80やQuarterLとのフロッピィのやりとりでは問題なく表示もコピーもできています。 昔の日本のマシンで作ったファイルです。当時韓国や中国といったオプションはそもそも無いです。 WindowsXP機の「地域と言語のオプション」は日本です。 エクスプローラでは表示の不具合はなく、化けずにαやmは表示されます。 コピーしようとしてはじめてできない、となるので 今回ご回答いただいた「外字ではないか」「英語モードではないか」は いずれも合致しません。
- OsieteG00
- ベストアンサー率35% (777/2173)
PC98に関しては独自の文字コードを使用していましたし、その後にJISの改定等ありましたので仕方が無いかと。 ※私は当時はレスキュー用に半角英数字しか怖くて使えませんでした。今でも8.3形式で名前を付けてしまう...
補足
いいえ。「α」も「m」も機種依存文字ではありません。 当時のIBM-PCでもFMRでもDOS/Vでも共通です。 4度のJIS改定でもこれらはコードが変わっていません。 いまXP上でファイルの中身は全く化けずにに読めてますし、 他の漢字のファイル名は普通にコピーできるのでそういう問題ではないと思います。
補足
とても親切に追試までして頂いてありがとうございます。 まさに再現いただいたとおりの現象でした。 ご提示のマイクロソフトのURLで明確に「仕様」と分かり嬉しいです。これこそ求めていた情報でした。 ご回答に感謝します。