2020年7月11日土曜日

PC 特殊フォルダの 記述 に関して

いやぁ、良く分かんないのですけれど ... 。
在る筈のフォルダが無い! と言われると、 困っちゃいますよね。
一応、 OS 利用言語にも絡むので、
調べて見ました。


In my User folder, there's nothing like an Appdata folder.


えっ!。  AppData フォルダ が無い!。


事は、 とある QA サイト での出来事。
OS は Windows です。


さて、現在、上記の質問それ自体は解決した訳では無いですが、
実は、少し、書いて見たくなる 発見 がありました。


AppData にあるファイルを何某して ... 。
と言われて、すぐさま、ファイルを開ける方は少数派なのかも知れません。

今回の発見は、AppData と言う語句が OS 利用言語 によって 可変の語句 になる可能性があると言う事実!。
可能性自体は 相当低い と予想してはいるのですが ... 。


QA サイトや解説文等で、 何処其処にある設定ファイルを ~ して の文言は、
多くの場合、不親切です。
それは、各自の環境によって、場所が異なるファイルを指し示すケースが多いからです。
私も、この Blog 等で書く時は、自分の環境(日本語環境)を下敷きにして書きます。
ケースバイケースで、記述を変えていますが、 私とて、十分ではありません。

日本語版 Windows の場合、
基本となる 英語版 Windows に 言語体系が異なる語句を Junction 等で補っている訳ですから、
別言語版でも、 基本(実体)となるディレクトリ名(フォルダ名)は変わらないと思っていたのです。

でも、AppData フォルダ が無い!、 と仰られる ... 。

通常、良く見掛ける記述は、
C:¥Users¥UserName¥AppData¥Roaming¥App1
でも、システムは C: ドライブにあるとは限りませんし、
UserName を 自分の名前 に置換しないといけません。

C:¥Users¥UserName の部分を、環境に左右されずに置換出来るのが %USERPROFILE% です。
USERPROFILE は 環境変数 で、
コマンドプロンプト (cmd.exe) や (File) Explorer のアドレスバーで使えます。

ご存知の通り、AppData は システム用の特殊なもので、隠しフォルダ属性 が付いています。
しかし、
特に設定を変えなくても、
'%USERPROFILE%¥AppData¥Roaming¥App1' で Explorer 上の表示はされた筈。
それが、無い と言う事は、AppData 以下の語句が異なるのでは? と言う事。
或いは、操作ミスなのか ... 。


語句が異なれば、上の記述では、役に立たないですから。
でも、そんな筈は ... 、と思う自分がいるのも、事実です。

さて、
環境変数。
cmd.exe から set [Enter] と打ち込めば、ずら~ と表示されますね。

此処には、各自の環境設定を反映したものが並びます。
そう、環境によって変わり得る者達 です。

その冒頭部分に、APPDATA があります。
¥AppData¥Roaming が 別の文字列になっても、それを指し示す為です。
ですから、
'%USERPROFILE%¥AppData¥Roaming¥App1' を、
'%APPDATA%¥App1'  に変えてやれば OK です。

参考迄に、
¥AppData¥Local の場合は、LOCALAPPDATA と言う名の 環境変数 が準備されています。


  完全に逸脱しますが、
  開発言語にも似た機能が備わっています。
  .net なら、
  System.Runtime.Extensions.dll に用意された、
  Environment.SpecialFolder 列挙型 ですね。
  .net(C#) なら (例) System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData));
  C++ なら、 (良く分かんないのですが)
  CSIDL や FOLDERID に列挙されています。
  SHGetSpecialFolderPath( NULL, waFolderPath, CSIDL_APPDATA, 0 );
  或いは、
  FOLDERID_RoamingAppData
  散々調べた結果、
  Description Default Path %APPDATA% (%USERPROFILE%¥AppData¥Roaming) と、
  Windows Dev Center に記述があるので、
  語句が変わっている可能性は低いと思ってはいます。


どうやら、上記の対応をして戴いた事で、
AppData フォルダ が無い! は 解決 した様です。


いやぁ~、
全世界の方を対象とした OS 絡みの解説の難しい事 ... 。



0 件のコメント:

コメントを投稿