- ベストアンサー
作業ディレクトリについてエンドユーザが意識しなければならないシチュエーションについて教えてください。
「作業ディレクトリ」の歴史やその名残、エンドユーザであっても気をつけたほうが良い点などについて教えてください。私はパソコンのエンドユーザであるためか、一度も「作業ディレクトリ」について意識させられたことがありませんでした。ところが、ある日、エクセルVBAで作業ディレクトリの指定を正しく行っていないと開いてくれないマクロに遭遇して、その存在を知りました。エクセルVBA以外にも、「作業ディレクトリ」絡みで、エンドユーザの日常で問題になってしまうことは他にあるでしょうか?そもそも、どうして「絶対パス指定」を常用しないのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
プログラマではないので推測ですが、「絶対パス」を指定してしまうと、ログインユーザを追加変更するたびに作業ディレクトリも指定しなおさなければならず、その件で「起動しない」などとユーザ問い合わせが増える可能性があります。 また、だったらすべてユーザと無関係な専用ディレクトリを作るという方法も考えられますが、それが起動ドライブ以外の場合などではやはりユーザが勝手にフォーマットしたりされる危惧があります。 Cドライブにユーザアカウントに関係なくディレクトリを指定すると、今度はフォルダアクセス権をどうするかと、他人の作業内容履歴が丸見えになってしまいますね。 こんな理由により排他的に「%temp%」などを指定するのではないでしょうか。
その他の回答 (1)
- chie65536
- ベストアンサー率41% (2512/6032)
>そもそも、どうして「絶対パス指定」を常用しないのでしょうか? パスを固定した場合、もし「そのフォルダが存在せず、代わりに、同名のファイルが存在する」と言う状況に陥ると「同名のファイルを削除した上で、フォルダを再作成しなければならない」と言う状態になる。 もし、ログインユーザーがファイルの削除とフォルダの作成の権限を持っていなかったり、削除すべきファイルの所有権が他人になっていて削除出来ない場合、その「絶対パス指定されたフォルダ」に作業ファイルを作成する事が出来なくなる。 例えば「C:\TEMP\」が作業ディレクトリとして絶対パス指定されている場合に、もし誰かが「C:\TEMP」と言う名前でファイルを作り、名称変更も削除も出来ないようにアクセス制限をかけていたら「C:\TEMP\」を作業ディレクトリとして使用できず、アプリケーションを起動しても「作業ファイルを作成できません。強制終了します」と言うメッセージを出して終了してしまうだろう。 このように「固定の絶対パス」は「誰かにブロックされて使えない場合がある」ので「非常に危険」と言える。 いまどき「固定の絶対パス」なんか使用したら、そのアプリを作ったプログラマは会社をクビになる。
お礼
解答1とあわせて、非常に危険な理由がよくわかりました。 アプリ毎に時々%Temp%が残っている長年の疑問も解けました。C:\Temp\だけだと衝突してしまうからなんですね。 >いまどき「固定の絶対パス」なんか使用したら かつては・・・なことがあったということでしょうか? ちょっと引っかかりましたが、普通の人にはあまり関係がないという理解にとどめさせていただきます。 ※質問がナンセンスだとわかったので閉じてもいいのですが、意識しなければならない事例やトラブル事例があるかもしれないので、もう少しそのままにしておきます。
お礼
丁寧な解説をどうもありがとうございます。 他の人のアクセスなど考えていませんでした。 この質問は”(パソコンはより)安易であってほしい”という願望から来た私の頓珍漢な質問だったようです。