Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

サクラエディタがNTFSの代替データストリームに対応しているかどうか検証する #1452

Closed
berryzplus opened this issue Nov 1, 2020 · 1 comment · Fixed by #1455
Labels
research 実現可能性調査【ChangeLog除外】

Comments

@berryzplus
Copy link
Contributor

一足先にマージされてしまいましたが、一応コメントしておきます。

NTFSには代替データストリーム(ADS)というものがあり、ファイル名またはフォルダ名に : を続けてストリーム名を指定するものがあります。
localhost:8080C:\work\test:001.txt もNTFSであれば、パスとしては正しいです。
この場合.txtは拡張子ではなく、testというファイルの「001.txt」というストリームです。
実際に相対パスのlocalhostや絶対パスでtestというファイルが実在するなら、どちらもメモ帳やサクラエディタで読み書き可能です。
ただし問題はあって、ファイルダイアログでは代替データストリームを正しく扱うことができないんじゃなかったかなと思います。
代替データストリームは、ネットからダウンロードしてきたファイルをマークしたりするZoneIDなどで使われています。
これを「封印」することによって、どれくらいの人が実際に困るかはわからないけれど、今まで一応読み書き可能であったものが、パス指定で開けなくなるんじゃないかな、と思います。

static const wchar_t* table = L"<>?\"|*";

今までの動作では、メッセージでは:がファイル名に使えないと表示されていますが、実際の処理では:をチェックしていません。
OS側の処理として、ドライブレター以外のコロンが2つあったり、パスの途中にあったりした場合はどうなのかとかは、ちょっと知らないです。

Originally posted by @usagisita in #1449 (comment)

@beru beru added the research 実現可能性調査【ChangeLog除外】 label Nov 1, 2020
@sanomari
Copy link
Contributor

sanomari commented Nov 2, 2020

対応してますね。

代替データストリーム(ADS)について色々調べてみた
https://qiita.com/minr/items/c2393f532b2df35f7a9d

#1449 ではこの機能を殺してしまってるのでマズそうです。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
research 実現可能性調査【ChangeLog除外】
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants