アカウント名:
パスワード:
表示困難なほど長いファイル名ができるとなれば、それを悪用する奴もでてきそうな予感特に不自由ないし、現状のままで良いと思うけどね
Windows NT時代から絶対パスに\\?\プレフィックス付けてUnicode版API呼べば可能だった事にいまさら何言ってんだか今回これで緩和されたの・絶対パスでなくていい・\\?\付けなくていい・Unicode版APIでなくていいで、一つのpath componentに256文字超使えるようになったわけじゃない
ただしアプリがオプトインする必要があってさらにグループポリシーまで有効にする必要があるとなると、この機能を当てにするのは難しそうだ。結局フルパス化して"\\?\"をつけるという作業は続ける必要がありそう。オプトインはまあわからなくもないが(ファイルのパス名はMAX_PATH以下だと決めつけているアプリに対してセキュリティホールになりかねない)、グループポリシーで有効にする必要があるって誰得なの。
\\?\ 付ければパス文字数制限突破出来るの知っていたけど、それで作った超長いパスのファイルをエクスプローラで消せなくなったりするんだよな…今回の対応はいいやり方だと思う。マニフェストファイルで指定しておけば、ロングパスレディなOS上でのみ有効になるわけだから、エクスプローラで削除できないという事態は起こらない訳だ。
【個人撮影・無修正】Anonymous Cowardの痴態.avi .exe
間違っても見たくねぇよ、そんなん
開発者的には不自由してた。オープンソースの流れで、Windows発祥ではないプラットフォームとかパッケージとかをWindows上で使う際のに、パス260文字制限に引っかかって難儀することがあったので。
node.jsのモジュール削除とか地味に面倒ですよね
メモリなんて640KBもあれば誰にとっても十分だよね。
Ubuntu on Windows対応のからみじゃないですかね。やたらめったら長いパスとかあるので。
テキスト情報からファイル名を自動生成するソフトを作っているとファイル名として使えない文字を取り除いたり無効化したりする処理保存するファイルの最終的なフルパスが256文字(byte?)以内に収まるかチェック→収まらなかったら拡張子を除いて適切に文字を減らす
処理が面倒だから、半分の手間になるなら大歓迎
UNIX じゃぁ普通 1024 だよね、と思っていたら…% getconf PATH_MAX .4096といつのまにか 4096 になっていたでござる(Linux(Fedora 22))。固定長配列で処理するのは危ないね、少なくとも C99 以降の variable length array を使わなきゃ。
結局、UNIXでCがベースになっているというのが一番の問題であって、根本的には、文字列長を意識する必要の無いシステムに移行していくしかないと思う。
# int32 の上限値はさすがに超えないだろうけど
>文字列長を意識する必要の無いシステムに移行していくしかないと思う。
ファイル名のバイト列にデータを埋め込むことで、ファイルサイズ0でもデータを保存できる。これで無限ファイルシステムの完成だ!
# 嘘です。
IEでページ保存するとやったら長い名前で作られるんだよ
AVのやたら描写的なタイトルとかで名前付けるのが制約なくなるわけだ。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
ソースを見ろ -- ある4桁UID
トラップに使おうとするヤツ (スコア:0)
表示困難なほど長いファイル名ができるとなれば、それを悪用する奴もでてきそうな予感
特に不自由ないし、現状のままで良いと思うけどね
Re:トラップに使おうとするヤツ (スコア:2, すばらしい洞察)
Windows NT時代から絶対パスに\\?\プレフィックス付けてUnicode版API呼べば可能だった事にいまさら何言ってんだか
今回これで緩和されたの
・絶対パスでなくていい
・\\?\付けなくていい
・Unicode版APIでなくていい
で、一つのpath componentに256文字超使えるようになったわけじゃない
Re: (スコア:0)
ただしアプリがオプトインする必要があってさらにグループポリシーまで有効にする必要があるとなると、この機能を当てにするのは難しそうだ。結局フルパス化して"\\?\"をつけるという作業は続ける必要がありそう。
オプトインはまあわからなくもないが(ファイルのパス名はMAX_PATH以下だと決めつけているアプリに対してセキュリティホールになりかねない)、グループポリシーで有効にする必要があるって誰得なの。
Re:トラップに使おうとするヤツ (スコア:2)
https://msdn.microsoft.com/ja-jp/library/cc422052.aspx [microsoft.com]
こんな関数を呼び出しているアプリはどうにもならんわけですが、別にアプリが悪いわけでは無い。
Re: (スコア:0)
\\?\ 付ければパス文字数制限突破出来るの知っていたけど、それで作った超長いパスのファイルをエクスプローラで消せなくなったりするんだよな…
今回の対応はいいやり方だと思う。マニフェストファイルで指定しておけば、ロングパスレディなOS上でのみ有効になるわけだから、エクスプローラで削除できないという事態は起こらない訳だ。
Re:トラップに使おうとするヤツ (スコア:2, おもしろおかしい)
【個人撮影・無修正】Anonymous Cowardの痴態.avi .exe
Re:トラップに使おうとするヤツ (スコア:2)
Re: (スコア:0)
間違っても見たくねぇよ、そんなん
Re:トラップに使おうとするヤツ (スコア:1)
開発者的には不自由してた。
オープンソースの流れで、Windows発祥ではないプラットフォームとかパッケージとかをWindows上で使う際のに、パス260文字制限に引っかかって難儀することがあったので。
Re: (スコア:0)
node.jsのモジュール削除とか地味に面倒ですよね
Re:トラップに使おうとするヤツ (スコア:1)
それ以上長くてもどうせ表示できないし
Re: (スコア:0)
メモリなんて640KBもあれば誰にとっても十分だよね。
Re: (スコア:0)
Ubuntu on Windows対応のからみじゃないですかね。
やたらめったら長いパスとかあるので。
Re: (スコア:0)
テキスト情報からファイル名を自動生成するソフトを作っていると
ファイル名として使えない文字を取り除いたり無効化したりする処理
保存するファイルの最終的なフルパスが256文字(byte?)以内に収まるかチェック→収まらなかったら拡張子を除いて適切に文字を減らす
処理が面倒だから、半分の手間になるなら大歓迎
いつの間に 4096 になってたんだ? (スコア:0)
UNIX じゃぁ普通 1024 だよね、と思っていたら…
% getconf PATH_MAX .
4096
といつのまにか 4096 になっていたでござる(Linux(Fedora 22))。
固定長配列で処理するのは危ないね、少なくとも C99 以降の variable length array を使わなきゃ。
Re: (スコア:0)
結局、UNIXでCがベースになっているというのが一番の問題であって、根本的には、文字列長を意識する必要の無いシステムに移行していくしかないと思う。
# int32 の上限値はさすがに超えないだろうけど
Re: (スコア:0)
>文字列長を意識する必要の無いシステムに移行していくしかないと思う。
ファイル名のバイト列にデータを埋め込むことで、
ファイルサイズ0でもデータを保存できる。
これで無限ファイルシステムの完成だ!
# 嘘です。
Re: (スコア:0)
IEでページ保存するとやったら長い名前で作られるんだよ
Re: (スコア:0)
AVのやたら描写的なタイトルとかで名前付けるのが制約なくなるわけだ。