ちゃっぴの監禁部屋

ガチガチに締めすぎて動きがとれなくなる。。。

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  405  : 記事  5  : コメント  12114  : トラックバック  134

ニュース

記事カテゴリ

書庫

日記カテゴリ

Communities

Personal Information

ネタ元: SHFileOperation関数について

UNIX では path で direcotry を明示的に指定するためにこのような表記をします。

/dir1/dir2/

最後に '/' をつけるのがミソですね。Windows ではどうでしょう?

この表記方法が使える場合もあるし、使えない場合もある。扱う API によってまちまちです。

例えば、ネタ元の SHFileOperation function。これ、SHFILEOPSTRUCT structure の pTo に "C:\Folder1\Folder2\" のような感じで指定して copy を行うと

Invalid Path Dialog

ダメだってさ。。。orz

ちなみにこの path 指定方法は絶対に利用できないわけではなく、一部の API や command では利用可能だったりします。たとえば、XCOPY。こちらは "C:\Folder1\Folder2\" のような指定をするべき仕様になっていて、省略する場合には "/i" switch を指定するのが正しい方法です。

しかしまぁ。統一感の無いこと。。。Path の仕様があいまいなんで、それを利用する application を作成するときにめちゃくちゃ苦労します。とはいえ、これ確か MS-DOS の頃からのしがらみなんですよね。。。

こういうところが随所に見られるので Windows 嫌いという人もまた多いんじゃないでしょうか?

現状では、こちらを抜本的に見直すのは互換性の問題があるので不可能だと思いますが、願わくば新しいものを作る時には直していただきたいんですよね。

と思って、MSDN Library 覗いてみると Windows Vista では、SHFileOperation function が IFileOperation Interface に置き換わっているらしい。調査してみるか。。。

投稿日時 : 2008年5月10日 14:39

コメント

# re: Windows での folder path 指定の問題点 2008/05/10 15:09 ちゃっぴ
IFileOperation::CopyItem method は copy 先の folder path と名前を別々の引数として受け取るように設計されていますね。

# re: Windows での folder path 指定の問題点 2008/05/11 0:54 中博俊
基本的にはルートの場合はつける
c:\
サブの場合にはつけない
c:\a
をお勧め。
たぶんSHFileOperationもc:\は通ると思います。


Post Feedback

タイトル
名前
Url:
コメント