マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

GitHubのリポジトリに登録した物件をダウンロードした際、
取得したZIPファイルが解凍できないなどの問題があったので調査をしてみた。

要因

以下の2つの要因がある(実はファイルシステム側の問題ではなかった)。

ソフトウェアにパス長の制限がある。

Windowsの後方互換でパス長の制限があるためパス長の制限があるソフトウェアが現存する。

  • NTFSファイルシステムが32K文字までのパスをサポートしている。
  • しかし、Windows APIは、後方互換性を重視するため、
    • パス最大長がMAX_PATH環境変数で260文字に設定されている。
    • パスに " \\?\ "接頭辞を使用すると、260文字を超える文字を使用できる。
    • しかし、一部のWin32 APIでは" \\?\ "接頭辞を使用しても制限が解除されない。

というトコロに原因があるもよう。

  • Windows 10 Version 1607以降、MAX_PATHの制限を解除できる。
    • レジストリ修正
    • 若しくは、グループポリシー

全角文字を理解しないソフトウェアがある。

例えば以下のような例。

  • インテル ソフトウェア開発製品 日本語環境でのご注意 | XLsoft エクセルソフト Intel
    https://www.xlsoft.com/jp/products/intel/tech/win_jp_limitation.html
    • プログラム中のファイル入出力について、フォルダー名に日本語を含むと正常に動作しない。
    • Microsoft* Visual Studio* 上でのデバッグ操作において、
      フォルダー名に日本語がある場合や、ソースコードのファイル名に
      日本語を含むと、ブレークポイントが機能しない
    • , etc.

対策

ソフトウェアで対応(ZIPの場合)

  • 上記の双方([[パス長>]]、[[全角文字>]])とも、ソフトウェアが対応すれば済む。
  • 例えば、ZIPであれば7-Zip、WinRARがコレラの問題に対応している。

パスを変更する。

パスを短くする。

出力パスが短くなるようにする。
=圧縮した一式の解凍先を「C:\temp」などとする。

パスの全角文字を除く。

参考

パス長の制限

現象

ZIP

  • Windows XP で ZIP 形式のファイルを解凍すると、
    "指定されたファイルが見つかりません" と
    エラー メッセージが表示されてファイルの解凍ができない場合がある
    https://support.microsoft.com/ja-jp/help/978341

Tags: :インフラストラクチャ, :Windows


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-02-08 (木) 08:48:30 (249d)