ファイルやパスの文字列長と文字コードの問題
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-[[戻る>ファイルシステム]]
* 目次 [#k72cc8fb]
#contents
*概要 [#jc9a5185]
-GitHubのリポジトリに登録した物件をダウンロードした際、~
取得したZIPファイルが解凍できないなどの問題があったので調...
-ココの問題は、コンピュータに保存されているファイルの識別...
--パス名は,ドライブ文字、ディレクトリパス、ファイル名な...
--Windowsのパス名には少々複雑な事情があり、さまざまな注意...
*詳細 [#mce43440]
**要因 [#l017ddff]
以下の2つの要因がある(実はファイルシステム側の問題では...
***ソフトウェアにパス長の制限がある。 [#r2e25c13]
Windowsの後方互換でパス長の制限があるためパス長の制限があ...
-NTFSファイルシステムが32K文字までのパスをサポートしてい...
-しかし、Windows APIは、後方互換性を重視するため、
--パス最大長がMAX_PATH環境変数で260文字に設定されている。
--パスに " \\?\ "接頭辞を使用すると、260文字を超える文字...
--しかし、一部のWin32 APIでは" \\?\ "接頭辞を使用しても制...
>というトコロに原因があるもよう。
-Windows 10 Version 1607以降、MAX_PATHの制限を解除できる。
--レジストリ修正
--若しくは、グループポリシー
***全角文字を理解しないソフトウェアがある。 [#q3a7bdf6]
例えば以下のような例。
-インテル ソフトウェア開発製品 日本語環境でのご注意 | XLs...
https://www.xlsoft.com/jp/products/intel/tech/win_jp_limi...
--プログラム中のファイル入出力について、~
フォルダー名に日本語を含むと正常に動作しない。
--Microsoft* Visual Studio* 上でのデバッグ操作において、~
---フォルダー名に日本語がある場合や、
---ソースコードのファイル名に日本語を含むと、
>>ブレークポイントが機能しない
--, etc.
**対策 [#dcf9ba2a]
***ソフトウェアで対応(ZIPの場合) [#z0a6f69d]
-上記の双方([[パス長>#r2e25c13]]、[[全角文字>#q3a7bdf6]]...
-例えば、ZIPであれば7-Zip、WinRARがコレらの問題に対応して...
***パスを変更する。 [#i488252f]
-パスを短くする。~
出力パスが短くなるようにする。~
=圧縮した一式の解凍先を「C:\temp」などとする。
-パスの全角文字を除く。~
*その他 [#m3bc728d]
以下のようなトピックもある模様。
** サービス機能 [#v116207f]
-パス名の解釈に伴う「サービス機能」がある。
-CreateFile( )にはいくつものサービス機能がある。
***機能一覧(一部) [#m787fd52]
+ディレクトリ区切り文字「/」が使用できる。
+ディレクトリ区切り文字の重複「\\」が許される。
+パス名の途中に \.\ を差し挟める。
+パス名の途中に \..\ を差し挟める。
+パス名の末尾の「.」や半角スペースが無視される。
***不活性化 [#b42fbc4b]
「\\?\」から始まるパス名についてはサービス機能が働かなく...
**ショートネーム [#b5c92cfc]
Windowsのファイルやディレクトリは
-ロングネームと
-そのロングネームから自動生成されたショートネーム([[8.3形...
の2つを持つ。
***ショートネーム機能のOFF [#v34fea6f]
レジストリのNtfsDisable8dot3NameCreationで自動生成をOFFに...
***ショートネームの排除 [#j3a16692]
-パス名に「~」が含まれていたらショートネームが混入されて...
-APIでショートネームをロングネームに変換するようにする。
**ストリーム [#saa8e7f3]
ファイル名に「:」が含まれていると具合が悪い。
-ファイル名中の「:」は「ADS」を表す区切り記号として意味を...
-詳しくは、[[NTFSの代替データストリーム(ADS)>#m982dc5b]...
**予約デバイス名 [#w8f7c7bc]
-MS-DOSの時代に用いられていた古典的な名称
--コンソール
--シリアル通信ポート
--プリンタポートなど
-次の名前はディレクトリやファイルの名前には使ってはならない
--AUX
--CON
--NUL
--PRN
--CLOCK$
--COM1~COM9
--LPT1~LPT9
-10番以降のデバイス~
先頭に\\.\を付ける。
*参考 [#cbb29027]
-ASCII.jp:Windowsのパス区切り文字は、~
なぜ逆スラッシュになったのか?|Windows Info~
http://ascii.jp/elem/000/001/763/1763591/
-8-1. Windowsパス名の落とし穴~
https://www.ipa.go.jp/security/awareness/vendor/programmi...
**パス長の制限 [#gb1da2c7]
-260文字のパスの長さ制限がWindowsに存在するのはなぜですか...
path - limit | CODE Q&A [日本語]~
https://code.i-harness.com/ja/q/1cb101
-Long Paths in .NET, [Kim Hamilton] – BCL Team Blog
--Part 1 of 3~
https://blogs.msdn.microsoft.com/bclteam/2007/02/13/long-...
--Part 2 of 3: Long Path Workarounds~
https://blogs.msdn.microsoft.com/bclteam/2007/03/26/long-...
--Part 3 of 3 Redux~
https://blogs.msdn.microsoft.com/bclteam/2008/07/07/long-...
-Naming Files, Paths, and Namespaces (Windows)~
https://msdn.microsoft.com/en-us/library/aa365247.aspx
-CreateFileW等のwin32apiでMAX_PATH 超のメモ - Qiita~
https://qiita.com/jugemjugemu/items/4db1dfd3d2737d3979df
>net462 の Fix 260 character file name length limitation...
System.IO APIに長いパスのサポートが入った。
**現象 [#t379aa74]
-ファイル名の長さと文字コードの問題:~
プログラマー社長のブログ:オルタナティブ・ブログ~
http://blogs.itmedia.co.jp/komata/2012/11/post-85cf.html
-ファイル名・パス名の文字数制限と日本語名には注意が必要で...
|滋賀県大津市の小さなパソコン教室「ぱそこんる~む123」~
https://ameblo.jp/pcroom123/entry-11545076070.html
***ZIP [#v9c8a224]
-長いファイル名を含むZIPファイルの解凍~
'-とあるZIPファイルを解凍しよ- その他(ソフトウェア) | ...
https://oshiete.goo.ne.jp/qa/1624421.html
-Zipファイルを展開しようとすると~
「変更先へのパスが長すぎます、圧... - Yahoo!知恵袋~
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/...
-Windows XP で ZIP 形式のファイルを解凍すると、~
"指定されたファイルが見つかりません" と~
エラー メッセージが表示されてファイルの解凍ができない場合...
https://support.microsoft.com/ja-jp/help/978341
-IBM Knowledge Center~
インストール・ファイルの解凍時における~
「ファイル・パスが長すぎます (File path too long)」などの...
https://www.ibm.com/support/knowledgecenter/ja/SSFUEU_7.1...
***・・・ [#e527a04b]
-色々書き足して行こうと考えていたけど、良いネタが無いかも。
-最近遭遇した、現象に、
--フォルダ名にC#の「#」が混在していると.NET CoreのBuildに...
--roslynの完全限定型名は 260 文字、ディレクトリ名は 248 ...
---------------------------
Microsoft Visual Studio
---------------------------
式 "roslyn\%(RecursiveDir)%(Filename)%(Extension)" の中...
項目メタデータ "%(Filename)" をパス
"....\packages\Microsoft.CodeDom.Providers.DotNetCompile...
..\..\tools\roslynlatest\System.Security.Cryptography.X5...
に適用できません。指定されたパス、ファイル名、またはその...
完全限定型名は 260 文字未満で指定し、ディレクトリ名は 24...
>というモノがあった。
--後者は「#」→「S」で解決するけど、
--前者はフォルダ構成を変更する必要がある。
**その他 [#ya6f4422]
***8.3形式 [#s2289abd]
-8.3形式 - Wikipedia~
https://ja.wikipedia.org/wiki/8.3%E5%BD%A2%E5%BC%8F
***代替データストリーム(ADS) [#m982dc5b]
ADS: Alternate Data Stream
-ASCII.jp:インターネットからダウンロードしたファイルは~
Zone.Identifierでセキュリティ管理をする|Windows Info~
http://ascii.jp/elem/000/001/550/1550399/
-フォーク (ファイルシステム) - Wikipedia~
https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A9%E3%83%BC...
----
Tags: [[:インフラストラクチャ]], [[:Windows]]
終了行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-[[戻る>ファイルシステム]]
* 目次 [#k72cc8fb]
#contents
*概要 [#jc9a5185]
-GitHubのリポジトリに登録した物件をダウンロードした際、~
取得したZIPファイルが解凍できないなどの問題があったので調...
-ココの問題は、コンピュータに保存されているファイルの識別...
--パス名は,ドライブ文字、ディレクトリパス、ファイル名な...
--Windowsのパス名には少々複雑な事情があり、さまざまな注意...
*詳細 [#mce43440]
**要因 [#l017ddff]
以下の2つの要因がある(実はファイルシステム側の問題では...
***ソフトウェアにパス長の制限がある。 [#r2e25c13]
Windowsの後方互換でパス長の制限があるためパス長の制限があ...
-NTFSファイルシステムが32K文字までのパスをサポートしてい...
-しかし、Windows APIは、後方互換性を重視するため、
--パス最大長がMAX_PATH環境変数で260文字に設定されている。
--パスに " \\?\ "接頭辞を使用すると、260文字を超える文字...
--しかし、一部のWin32 APIでは" \\?\ "接頭辞を使用しても制...
>というトコロに原因があるもよう。
-Windows 10 Version 1607以降、MAX_PATHの制限を解除できる。
--レジストリ修正
--若しくは、グループポリシー
***全角文字を理解しないソフトウェアがある。 [#q3a7bdf6]
例えば以下のような例。
-インテル ソフトウェア開発製品 日本語環境でのご注意 | XLs...
https://www.xlsoft.com/jp/products/intel/tech/win_jp_limi...
--プログラム中のファイル入出力について、~
フォルダー名に日本語を含むと正常に動作しない。
--Microsoft* Visual Studio* 上でのデバッグ操作において、~
---フォルダー名に日本語がある場合や、
---ソースコードのファイル名に日本語を含むと、
>>ブレークポイントが機能しない
--, etc.
**対策 [#dcf9ba2a]
***ソフトウェアで対応(ZIPの場合) [#z0a6f69d]
-上記の双方([[パス長>#r2e25c13]]、[[全角文字>#q3a7bdf6]]...
-例えば、ZIPであれば7-Zip、WinRARがコレらの問題に対応して...
***パスを変更する。 [#i488252f]
-パスを短くする。~
出力パスが短くなるようにする。~
=圧縮した一式の解凍先を「C:\temp」などとする。
-パスの全角文字を除く。~
*その他 [#m3bc728d]
以下のようなトピックもある模様。
** サービス機能 [#v116207f]
-パス名の解釈に伴う「サービス機能」がある。
-CreateFile( )にはいくつものサービス機能がある。
***機能一覧(一部) [#m787fd52]
+ディレクトリ区切り文字「/」が使用できる。
+ディレクトリ区切り文字の重複「\\」が許される。
+パス名の途中に \.\ を差し挟める。
+パス名の途中に \..\ を差し挟める。
+パス名の末尾の「.」や半角スペースが無視される。
***不活性化 [#b42fbc4b]
「\\?\」から始まるパス名についてはサービス機能が働かなく...
**ショートネーム [#b5c92cfc]
Windowsのファイルやディレクトリは
-ロングネームと
-そのロングネームから自動生成されたショートネーム([[8.3形...
の2つを持つ。
***ショートネーム機能のOFF [#v34fea6f]
レジストリのNtfsDisable8dot3NameCreationで自動生成をOFFに...
***ショートネームの排除 [#j3a16692]
-パス名に「~」が含まれていたらショートネームが混入されて...
-APIでショートネームをロングネームに変換するようにする。
**ストリーム [#saa8e7f3]
ファイル名に「:」が含まれていると具合が悪い。
-ファイル名中の「:」は「ADS」を表す区切り記号として意味を...
-詳しくは、[[NTFSの代替データストリーム(ADS)>#m982dc5b]...
**予約デバイス名 [#w8f7c7bc]
-MS-DOSの時代に用いられていた古典的な名称
--コンソール
--シリアル通信ポート
--プリンタポートなど
-次の名前はディレクトリやファイルの名前には使ってはならない
--AUX
--CON
--NUL
--PRN
--CLOCK$
--COM1~COM9
--LPT1~LPT9
-10番以降のデバイス~
先頭に\\.\を付ける。
*参考 [#cbb29027]
-ASCII.jp:Windowsのパス区切り文字は、~
なぜ逆スラッシュになったのか?|Windows Info~
http://ascii.jp/elem/000/001/763/1763591/
-8-1. Windowsパス名の落とし穴~
https://www.ipa.go.jp/security/awareness/vendor/programmi...
**パス長の制限 [#gb1da2c7]
-260文字のパスの長さ制限がWindowsに存在するのはなぜですか...
path - limit | CODE Q&A [日本語]~
https://code.i-harness.com/ja/q/1cb101
-Long Paths in .NET, [Kim Hamilton] – BCL Team Blog
--Part 1 of 3~
https://blogs.msdn.microsoft.com/bclteam/2007/02/13/long-...
--Part 2 of 3: Long Path Workarounds~
https://blogs.msdn.microsoft.com/bclteam/2007/03/26/long-...
--Part 3 of 3 Redux~
https://blogs.msdn.microsoft.com/bclteam/2008/07/07/long-...
-Naming Files, Paths, and Namespaces (Windows)~
https://msdn.microsoft.com/en-us/library/aa365247.aspx
-CreateFileW等のwin32apiでMAX_PATH 超のメモ - Qiita~
https://qiita.com/jugemjugemu/items/4db1dfd3d2737d3979df
>net462 の Fix 260 character file name length limitation...
System.IO APIに長いパスのサポートが入った。
**現象 [#t379aa74]
-ファイル名の長さと文字コードの問題:~
プログラマー社長のブログ:オルタナティブ・ブログ~
http://blogs.itmedia.co.jp/komata/2012/11/post-85cf.html
-ファイル名・パス名の文字数制限と日本語名には注意が必要で...
|滋賀県大津市の小さなパソコン教室「ぱそこんる~む123」~
https://ameblo.jp/pcroom123/entry-11545076070.html
***ZIP [#v9c8a224]
-長いファイル名を含むZIPファイルの解凍~
'-とあるZIPファイルを解凍しよ- その他(ソフトウェア) | ...
https://oshiete.goo.ne.jp/qa/1624421.html
-Zipファイルを展開しようとすると~
「変更先へのパスが長すぎます、圧... - Yahoo!知恵袋~
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/...
-Windows XP で ZIP 形式のファイルを解凍すると、~
"指定されたファイルが見つかりません" と~
エラー メッセージが表示されてファイルの解凍ができない場合...
https://support.microsoft.com/ja-jp/help/978341
-IBM Knowledge Center~
インストール・ファイルの解凍時における~
「ファイル・パスが長すぎます (File path too long)」などの...
https://www.ibm.com/support/knowledgecenter/ja/SSFUEU_7.1...
***・・・ [#e527a04b]
-色々書き足して行こうと考えていたけど、良いネタが無いかも。
-最近遭遇した、現象に、
--フォルダ名にC#の「#」が混在していると.NET CoreのBuildに...
--roslynの完全限定型名は 260 文字、ディレクトリ名は 248 ...
---------------------------
Microsoft Visual Studio
---------------------------
式 "roslyn\%(RecursiveDir)%(Filename)%(Extension)" の中...
項目メタデータ "%(Filename)" をパス
"....\packages\Microsoft.CodeDom.Providers.DotNetCompile...
..\..\tools\roslynlatest\System.Security.Cryptography.X5...
に適用できません。指定されたパス、ファイル名、またはその...
完全限定型名は 260 文字未満で指定し、ディレクトリ名は 24...
>というモノがあった。
--後者は「#」→「S」で解決するけど、
--前者はフォルダ構成を変更する必要がある。
**その他 [#ya6f4422]
***8.3形式 [#s2289abd]
-8.3形式 - Wikipedia~
https://ja.wikipedia.org/wiki/8.3%E5%BD%A2%E5%BC%8F
***代替データストリーム(ADS) [#m982dc5b]
ADS: Alternate Data Stream
-ASCII.jp:インターネットからダウンロードしたファイルは~
Zone.Identifierでセキュリティ管理をする|Windows Info~
http://ascii.jp/elem/000/001/550/1550399/
-フォーク (ファイルシステム) - Wikipedia~
https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A9%E3%83%BC...
----
Tags: [[:インフラストラクチャ]], [[:Windows]]
ページ名: