アカウント名:
パスワード:
似たような話で、GnuTLSのリポジトリにコロンを含むファイルが追加されて、Windowsで取得できなくなってる。https://gitlab.com/gnutls/gnutls/tree/master/tests/suite/certs-coverage [gitlab.com]
一応,ここにつなげて書くかな.
Linux/Mac で作業していた時に,手元の git リポジトリに何気に深ーいパスのファイル名を追加.Windows 環境で作業しようと,git pull したら取り出すときに訳の分からないエラー.調べてみたら git client が 32bit アプリだったせいで,win32 環境の 256 文字制限にひかっかったというわけ.git クライアントを差し替えてみたけど,次から次にいろんな 32bit アプリが引っかかってダメダメ.結局,開発環境全体を 64bit にすることができずに,Windows 環境での開発はあきらめました.
...ということを数か月間に経験したばかり.
それ、単に32/64bit関係なくアプリが対応してないだけです。単純に64bit化しても255文字を超えるパスには対応出来ませんし、32bitアプリでもAPI的には\\?\接頭語を付けてAPIを呼べば3万文字は扱えます。# #3209924 [srad.jp]のリンク先とか、手前味噌でアレですが、去年の私の投稿 [srad.jp](ファイル名に予約語を使って削除も回避するマルウェアのストーリー [security.srad.jp]コメント)とか参考にどうぞ。
ちゃんと実装してれば今回話題のnulというフォルダやファイルも作成できます。ただし、\\?\が付く・付けることによるロジックや仕様面でのスペシャル対応が必要なので対応してないアプリの方が多いです。エクスプローラーとかも対応してませんので、後で扱いで困る事もありますしね。
C直下にTempフォルダを用意してコマンドプロンプトで下記コマンドを実行するとnulファイルが作成される事が確認できるかと。ちなみに出来の悪いフィルタドライバやシェル拡張等が居ると何が起きるか解らないので自己責任でお願いします。# 過去アンチウィルスソフトのフィルタドライバがBSoDを起こす等色々有りましたので。
copy nul "\\?\C:\Temp\nul"
X:¥某組織の¥なんとか部署の¥なんとか課の¥何年の¥何月の¥なんちゃらかんちゃらのどうとかに関するアンケートの集計結果¥なんちゃらかんちゃらのどうとかに関するアンケートの集計結果1¥なんちゃらかんちゃらのどうとかに関するアンケートの集計結果.xlsxみたいな長いパスってたまにやらかすよねぇ・・・NASから別のNASにコピーしようとしてパスが長すぎでエラーとか。
つrobocopy
npmなんかはクソ長いパスにきちんと対応していてすごく階層の深いパッケージも取り込める。それをとあるファイラーで消そうとしたら表示上は大丈夫なのに削除できないという事例に遭遇。
少し前のnpmで、大量のnode_modules/だらけになってにっちもさっちもいかなくなる、ということがありました。
いまはフラットに作ってくれるのでだいぶマシです。
本元であるMicrosoftの最も基本的であろうファイル操作プログラムのエクスプローラーすら実装していないものを>ちゃんと実装してればというのは酷だよね。
エクスプローラーが長いパスにうっかり対応しちゃうとそれはそれで互換性に伴う頭痛の種が。サードパーティーの例えばAdobeのPDFサムネイルプレビューとかアンチウィルスとか様々なシェル拡張アプリケーションが全て正しく実装してないと、エクスプローラー(含むスタートメニュー等)自体がクラッシュするとか任意コード実行されるという酷い状態になるのです。# 森鷗外𠮟るというUnicodeやサロゲートペア入りパスですら怪しいというのにBoFに直結するようなファイル長対応は何時来るのやら
256byte制限もタコっちゃタコだけど、32bit環境だと致し方ない部分はあるしなぁ・・・
つーか、システム的な制限がないにせよ、256byte制限に引っかかるような深いパスの切り方はそっちのほうがどうかと思うが
>256byte制限もタコっちゃタコだけど、32bit環境だと致し方ない部分はあるしなぁ・・・
Unix系は32bit環境でも長いパスを問題なく使えていた。Windowsの実装がゴミだっただけ。
>つーか、システム的な制限がないにせよ、256byte制限に引っかかるような深いパスの切り方はそっちのほうがどうかと思うが
大会社だと
¥¥サーバー名¥よくわからんがとっても長い名前の事業部門¥よくわからんがとっても長い名前の事業本部¥よくわからんがとっても長い名前の事業部¥なんとかかんとかプロジェクト
なんていう、これだけで255byteに届いてしまいそうなファイル名が実際に起こりうるんだよ。プログラマが率先してこんなのやっちゃいかんが、ユーザーがやりたいと言ってるのを「どうかと思う」などとはプログラマが言うべき言葉ではない。
>256byte制限もタコっちゃタコだけど、32bit環境だと致し方ない部分はあるしなぁ・・・Unix系は32bit環境でも長いパスを問題なく使えていた。Windowsの実装がゴミだっただけ。
できるできないの話とゴミかどうかは関係ないと思うけど。その理屈で言うなら使い物になるGUIをまだろくに実装できてないLinuxとかゴミなんですかね?
>つーか、システム的な制限がないにせよ、256byte制限に引っかかるような深いパスの切り方はそっちのほうがどうかと思うが大会社だと¥¥サーバー名¥よくわからんがとっても長い名前の事業部門¥よくわからんがとっても長い名前の事業本部¥よくわからんがとって
Windowsに限った問題ではないかもですが、以前はcookieやお気に入りファイルの物凄い長さに泣かされました。壊れかけのHDDから光学ドライブにデータを退避させようとすると、名前が長すぎて焼けないファイルがそこかしこにあったりするので...
今はUSBでとりあえずは安心。
sqlcmdでbackupするバッチファイルを作る時、結果を置くフォルダの指定(当然しーころんえんまーくとか有り)を素直に環境変数に入れて置くとダメで、環境変数1+':'+環境変数2にしないとダメとか。
似たような話その2
同じフォルダに同名だが一部大文字小文字の違いがあるファイル(hoge.c と Hoge.c とか)をWindows環境にチェックアウトしようとすると競合エラーになったことがあったっけ……
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
UNIXはシンプルである。必要なのはそのシンプルさを理解する素質だけである -- Dennis Ritchie
似たような話 (スコア:1)
似たような話で、GnuTLSのリポジトリにコロンを含むファイルが追加されて、Windowsで取得できなくなってる。
https://gitlab.com/gnutls/gnutls/tree/master/tests/suite/certs-coverage [gitlab.com]
似たような問題で win32 の 256 文字制限ではまりました (スコア:2)
一応,ここにつなげて書くかな.
Linux/Mac で作業していた時に,手元の git リポジトリに何気に深ーいパスのファイル名を追加.
Windows 環境で作業しようと,git pull したら取り出すときに訳の分からないエラー.
調べてみたら git client が 32bit アプリだったせいで,win32 環境の 256 文字制限にひかっかったというわけ.
git クライアントを差し替えてみたけど,次から次にいろんな 32bit アプリが引っかかってダメダメ.
結局,開発環境全体を 64bit にすることができずに,Windows 環境での開発はあきらめました.
...ということを数か月間に経験したばかり.
Re:似たような問題で win32 の 256 文字制限ではまりました (スコア:3, 参考になる)
それ、単に32/64bit関係なくアプリが対応してないだけです。
単純に64bit化しても255文字を超えるパスには対応出来ませんし、32bitアプリでもAPI的には\\?\接頭語を付けてAPIを呼べば3万文字は扱えます。
# #3209924 [srad.jp]のリンク先とか、手前味噌でアレですが、去年の私の投稿 [srad.jp](ファイル名に予約語を使って削除も回避するマルウェアのストーリー [security.srad.jp]コメント)とか参考にどうぞ。
ちゃんと実装してれば今回話題のnulというフォルダやファイルも作成できます。
ただし、\\?\が付く・付けることによるロジックや仕様面でのスペシャル対応が必要なので対応してないアプリの方が多いです。
エクスプローラーとかも対応してませんので、後で扱いで困る事もありますしね。
C直下にTempフォルダを用意してコマンドプロンプトで下記コマンドを実行するとnulファイルが作成される事が確認できるかと。
ちなみに出来の悪いフィルタドライバやシェル拡張等が居ると何が起きるか解らないので自己責任でお願いします。
# 過去アンチウィルスソフトのフィルタドライバがBSoDを起こす等色々有りましたので。
copy nul "\\?\C:\Temp\nul"
Re:似たような問題で win32 の 256 文字制限ではまりました (スコア:2)
X:¥某組織の¥なんとか部署の¥なんとか課の¥何年の¥何月の¥なんちゃらかんちゃらのどうとかに関するアンケートの集計結果¥なんちゃらかんちゃらのどうとかに関するアンケートの集計結果1¥なんちゃらかんちゃらのどうとかに関するアンケートの集計結果.xlsx
みたいな長いパスってたまにやらかすよねぇ・・・
NASから別のNASにコピーしようとしてパスが長すぎでエラーとか。
**たこさん**・・・
Re: (スコア:0)
つrobocopy
Re: (スコア:0)
npmなんかはクソ長いパスにきちんと対応していてすごく階層の深いパッケージも取り込める。
それをとあるファイラーで消そうとしたら表示上は大丈夫なのに削除できないという事例に遭遇。
Re: (スコア:0)
少し前のnpmで、大量のnode_modules/だらけになってにっちもさっちもいかなくなる、ということがありました。
いまはフラットに作ってくれるのでだいぶマシです。
Re: (スコア:0)
本元であるMicrosoftの最も基本的であろうファイル操作プログラムのエクスプローラーすら実装していないものを
>ちゃんと実装してれば
というのは酷だよね。
Re:似たような問題で win32 の 256 文字制限ではまりました (スコア:1)
エクスプローラーが長いパスにうっかり対応しちゃうとそれはそれで互換性に伴う頭痛の種が。
サードパーティーの例えばAdobeのPDFサムネイルプレビューとかアンチウィルスとか様々なシェル拡張アプリケーションが全て正しく実装してないと、
エクスプローラー(含むスタートメニュー等)自体がクラッシュするとか任意コード実行されるという酷い状態になるのです。
# 森鷗外𠮟るというUnicodeやサロゲートペア入りパスですら怪しいというのにBoFに直結するようなファイル長対応は何時来るのやら
Re: (スコア:0)
256byte制限もタコっちゃタコだけど、32bit環境だと致し方ない部分はあるしなぁ・・・
つーか、システム的な制限がないにせよ、256byte制限に引っかかるような深いパスの切り方はそっちのほうがどうかと思うが
Re: (スコア:0)
>256byte制限もタコっちゃタコだけど、32bit環境だと致し方ない部分はあるしなぁ・・・
Unix系は32bit環境でも長いパスを問題なく使えていた。Windowsの実装がゴミだっただけ。
>つーか、システム的な制限がないにせよ、256byte制限に引っかかるような深いパスの切り方はそっちのほうがどうかと思うが
大会社だと
¥¥サーバー名¥よくわからんがとっても長い名前の事業部門¥よくわからんがとっても長い名前の事業本部¥よくわからんがとっても長い名前の事業部¥なんとかかんとかプロジェクト
なんていう、これだけで255byteに届いてしまいそうなファイル名が実際に起こりうるんだよ。
プログラマが率先してこんなのやっちゃいかんが、ユーザーがやりたいと言ってるのを「どうかと思う」などとはプログラマが言うべき言葉ではない。
Re: (スコア:0)
できるできないの話とゴミかどうかは関係ないと思うけど。
その理屈で言うなら使い物になるGUIをまだろくに実装できてないLinuxとかゴミなんですかね?
Re: (スコア:0)
Windowsに限った問題ではないかもですが、以前はcookieやお気に入りファイルの物凄い長さに泣かされました。
壊れかけのHDDから光学ドライブにデータを退避させようとすると、名前が長すぎて焼けないファイルがそこかしこにあったりするので...
今はUSBでとりあえずは安心。
Re:ちょっと似たような話 (スコア:0)
sqlcmdでbackupするバッチファイルを作る時、結果を置くフォルダの指定
(当然しーころんえんまーくとか有り)を素直に
環境変数に入れて置くとダメで、
環境変数1+':'+環境変数2にしないとダメとか。
Re: (スコア:0)
似たような話その2
同じフォルダに同名だが一部大文字小文字の違いがあるファイル(hoge.c と Hoge.c とか)を
Windows環境にチェックアウトしようとすると競合エラーになったことがあったっけ……