DOBON.NETプログラミング道掲示板
HOME
HELP
新規作成
新着記事
ツリー表示
スレッド表示
トピック表示
発言ランク
ファイル一覧
検索
過去ログ
[ スレッド内全6レス(親記事-6 表示) ] <<
0
>>
■34538
/ 親記事)
デスクトップ と Desktop
▼
■
□投稿者/ Vetty
一般人(1回)-(2020/09/25(Fri) 11:03:39)
環境/言語:[Windows10,VB2017,VB2019]
分類:[.NET]
Windows10 Home/Pro 両方
VisualStudio 2017/2019両方
すべて開発環境におけるDebug状態での実行
MsgBox(System.Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory))
で得られる文字列に
デスクトップ と Desktop の二種類があります
上記の混在環境においては常にそういう事態を予測しておくべきなのでしょうか?
マルチポストを報告
Javascriptを有効にしてください
この投稿がマルチポスト(全く同じ内容の投稿が別の掲示板に投稿されている)の場合は、以下のフォームをご利用いただくと、報告の投稿が簡単に行えます。
このフォームに必要事項を入力後、「返信フォームに入力する」ボタンをクリックすると、このページの下にある
返信フォーム
の項目が自動的に埋まります。実際に投稿するには、その後、返信フォームの「送信」ボタンをクリックしてください。
このフォームを利用しても返信フォームが埋まるだけですので、後で書き直してから投稿することもできます。
「マルチポストされている場所」には、マルチポストされている場所のURLを入力してください。複数のURLを改行区切りで入力することができます。
マルチポストされている場所
オプション
マルチポスト先の投稿が、別人によるいたずらである可能性が高い
違反を報告
Javascriptを有効にしてください
この投稿が掲示板のルールに違反しており、何らかの対処が必要であると思われる場合は、以下のフォームを利用して管理人に報告することができます。
マルチポストの報告は、
返信フォーム
の上にある「マルチポストの報告」リンクをご利用ください。
この機能の悪用は絶対にしないでください。
悪用されたと管理人が判断した場合は、予告なしで厳しい対処がなされる可能性があります。
確認等の目的で、入力されたメールアドレス宛に返信メールが送信される可能性があります。メールの受信ができないメールアドレスは入力しないでください。
下のフォームが使用できない場合は、
メールフォーム
を使って管理人にご報告ください。
お名前(必須)
メールアドレス(必須)
本文(必須)
(違反理由など)
引用返信
削除キー/
編集
削除
■34539
/ ResNo.1)
Re[1]: デスクトップ と Desktop
▲
▼
■
□投稿者/ 魔界の仮面弁士
大御所(1298回)-(2020/09/25(Fri) 17:08:06)
■
No34538
に返信(Vettyさんの記事)
> 上記の混在環境においては常にそういう事態を予測しておくべきなのでしょうか?
SpecialFolder で示されるパス内容は、実行環境によって異なります。
> デスクトップ と Desktop の二種類があります
DesktopDirectory で得られるパスは、
C:\Users\Administrator\Desktop
のようなパスになることもあれば、
C:\Documents and Settings\Administrator\Desktop
となることもあります。
C: ドライブの事もあれば、D: ドライブの事もあります。
最近の環境だと、OneDrive の管理下に配置されていることもあります。
アルファベットのみの "Desktop" ディレクトリが得られることもあれば、
半角カナの "テ゛スクトッフ゜" ディレクトリが得られることもあります。
[Win]+[E] キーを押して エクスプローラーを起動し、左側のツリーから
[デスクトップ] - [PC] - [デスクトップ] の階層を右クリックして
プロパティの [場所] タブで、別の場所を指定することもできます。
https://www.eripyon.com/mt/2019/01/move_onedrive_folder_to_original_user_folder.html
違反を報告
Javascriptを有効にしてください
この投稿が掲示板のルールに違反しており、何らかの対処が必要であると思われる場合は、以下のフォームを利用して管理人に報告することができます。
マルチポストの報告は、
返信フォーム
の上にある「マルチポストの報告」リンクをご利用ください。
この機能の悪用は絶対にしないでください。
悪用されたと管理人が判断した場合は、予告なしで厳しい対処がなされる可能性があります。
確認等の目的で、入力されたメールアドレス宛に返信メールが送信される可能性があります。メールの受信ができないメールアドレスは入力しないでください。
下のフォームが使用できない場合は、
メールフォーム
を使って管理人にご報告ください。
お名前(必須)
メールアドレス(必須)
本文(必須)
(違反理由など)
引用返信
削除キー/
編集
削除
■34540
/ ResNo.2)
Re[2]: デスクトップ と Desktop
▲
▼
■
□投稿者/ Vetty
一般人(2回)-(2020/09/27(Sun) 16:30:54)
回答ありがとうございます。
> SpecialFolder で示されるパス内容は、実行環境によって異なります。
最初の質問にあった msgbox(・・・ の本当の目的は、
Microsoftのサービスであり、 魔界の仮面弁士さんの回答にもある「OneDrive」に
存在するフォルダのPathの取得です。つまり
Environment.SpecialFolder.OneDriveDirectory
のようなものが欲しいわけです。
しかしMicrosoftの仕様ではそんなものはなさそうなので、エクスプローラから
手動で得られる
C:\Users\username\OneDrive\目的フォルダ
から想像して
System.Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)
の文字列内の "\Desktop" を "\OneDrive\目的フォルダ" に置き換えればいい、
と考えそのようなコーディングをしてそのPCで動作OKを確認しました。
(そのソフト自体もOneDriveに保存してあります)
で、別の場所で別のPCから同じソフトをDebug状態で実行して今回の質問になったわけです。
今の段階では
デスクトップ
Desktop
半角カナの "テ゛スクトッフ゜"
の3種類をIf文で判断して置き換えるのが現実的な方法でしょうか?
違反を報告
Javascriptを有効にしてください
この投稿が掲示板のルールに違反しており、何らかの対処が必要であると思われる場合は、以下のフォームを利用して管理人に報告することができます。
マルチポストの報告は、
返信フォーム
の上にある「マルチポストの報告」リンクをご利用ください。
この機能の悪用は絶対にしないでください。
悪用されたと管理人が判断した場合は、予告なしで厳しい対処がなされる可能性があります。
確認等の目的で、入力されたメールアドレス宛に返信メールが送信される可能性があります。メールの受信ができないメールアドレスは入力しないでください。
下のフォームが使用できない場合は、
メールフォーム
を使って管理人にご報告ください。
お名前(必須)
メールアドレス(必須)
本文(必須)
(違反理由など)
引用返信
削除キー/
編集
削除
■34541
/ ResNo.3)
Re[3]: デスクトップ と Desktop
▲
▼
■
□投稿者/ Hongliang
大御所(587回)-(2020/09/27(Sun) 17:03:00)
親フォルダのパスを取得するなら、System.IO名前空間PathクラスのGetDirectoryName静的メソッドを使えます。
パスの結合は同じくPathクラスのCombine静的メソッドでできます。
一般に C:\Users\ユーザ名 となっているフォルダのパスは、わざわざデスクトップフォルダ経由ではなくても SpecialFolder.UserProfile を使えば直接取得できます。
ただ限られた環境ならそれでもいいかもしれませんが、汎用的にはダメそうですね。
https://nj-clucker.com/move-onedrive-directory/
違反を報告
Javascriptを有効にしてください
この投稿が掲示板のルールに違反しており、何らかの対処が必要であると思われる場合は、以下のフォームを利用して管理人に報告することができます。
マルチポストの報告は、
返信フォーム
の上にある「マルチポストの報告」リンクをご利用ください。
この機能の悪用は絶対にしないでください。
悪用されたと管理人が判断した場合は、予告なしで厳しい対処がなされる可能性があります。
確認等の目的で、入力されたメールアドレス宛に返信メールが送信される可能性があります。メールの受信ができないメールアドレスは入力しないでください。
下のフォームが使用できない場合は、
メールフォーム
を使って管理人にご報告ください。
お名前(必須)
メールアドレス(必須)
本文(必須)
(違反理由など)
引用返信
削除キー/
編集
削除
■34542
/ ResNo.4)
Re[3]: デスクトップ と Desktop
▲
▼
■
□投稿者/ 魔界の仮面弁士
大御所(1299回)-(2020/09/28(Mon) 10:02:09)
■
No34540
に返信(Vettyさんの記事)
> Environment.SpecialFolder.OneDriveDirectory
古い環境(SkyDrive やそれ以前も含む)を除外して良いのなら、
MsgBox(Environ("OneDriveConsumer"))
MsgBox(Environ("OneDrive"))
でどうでしょう。
違反を報告
Javascriptを有効にしてください
この投稿が掲示板のルールに違反しており、何らかの対処が必要であると思われる場合は、以下のフォームを利用して管理人に報告することができます。
マルチポストの報告は、
返信フォーム
の上にある「マルチポストの報告」リンクをご利用ください。
この機能の悪用は絶対にしないでください。
悪用されたと管理人が判断した場合は、予告なしで厳しい対処がなされる可能性があります。
確認等の目的で、入力されたメールアドレス宛に返信メールが送信される可能性があります。メールの受信ができないメールアドレスは入力しないでください。
下のフォームが使用できない場合は、
メールフォーム
を使って管理人にご報告ください。
お名前(必須)
メールアドレス(必須)
本文(必須)
(違反理由など)
引用返信
削除キー/
編集
削除
■34543
/ ResNo.5)
Re[4]: デスクトップ と Desktop
▲
▼
■
□投稿者/ 魔界の仮面弁士
大御所(1300回)-(2020/09/28(Mon) 10:11:42)
■
No34542
に追記(魔界の仮面弁士の記事)
> MsgBox(Environ("OneDriveConsumer"))
> MsgBox(Environ("OneDrive"))
Windows 10 のバージョンが古い場合や、Windows 10 未満のバージョンでは、
上記の OneDrive for Business や OneDrive の環境変数が存在しない事もあります。
環境変数からパスが選らなかった場合には、さらに追加で
HKEY_CURRENT_USER\SOFTWARE\Microsoft\OneDrive\UserFolder
のレジストリエントリを探し、それも見当たらなければ、
HKEY_CURRENT_USER\SOFTWARE\Microsoft\SkyDrive\UserFolder
を探せばよいのでは無いでしょうか。
違反を報告
Javascriptを有効にしてください
この投稿が掲示板のルールに違反しており、何らかの対処が必要であると思われる場合は、以下のフォームを利用して管理人に報告することができます。
マルチポストの報告は、
返信フォーム
の上にある「マルチポストの報告」リンクをご利用ください。
この機能の悪用は絶対にしないでください。
悪用されたと管理人が判断した場合は、予告なしで厳しい対処がなされる可能性があります。
確認等の目的で、入力されたメールアドレス宛に返信メールが送信される可能性があります。メールの受信ができないメールアドレスは入力しないでください。
下のフォームが使用できない場合は、
メールフォーム
を使って管理人にご報告ください。
お名前(必須)
メールアドレス(必須)
本文(必須)
(違反理由など)
引用返信
削除キー/
編集
削除
■34544
/ ResNo.6)
Re[5]: デスクトップ と Desktop
▲
▼
■
□投稿者/ Vetty
一般人(3回)-(2020/09/28(Mon) 21:58:22)
Hongliang 大御所 さま ありがとうございます
>SpecialFolder.UserProfile を使えば直接取得できます。
これが今回の私の目的を実現する本来の方法だったんですね。
魔界の仮面弁士 さま ありがとうございます
> MsgBox(Environ("OneDriveConsumer"))
> MsgBox(Environ("OneDrive"))
DOS窓の Setコマンドで見えるやつですね。
思い出しました。
こんなところもUpdateされているとは・・・
>Windows 10 のバージョンが古い場合や、Windows 10 未満のバージョンでは、
>上記の OneDrive for Business や OneDrive の環境変数が存在しない事もあります。
今回の対象ユーザは少人数身近なメンバーですのでその辺の心配はないはず。
ありがとうございました。
解決
済
み!
違反を報告
Javascriptを有効にしてください
この投稿が掲示板のルールに違反しており、何らかの対処が必要であると思われる場合は、以下のフォームを利用して管理人に報告することができます。
マルチポストの報告は、
返信フォーム
の上にある「マルチポストの報告」リンクをご利用ください。
この機能の悪用は絶対にしないでください。
悪用されたと管理人が判断した場合は、予告なしで厳しい対処がなされる可能性があります。
確認等の目的で、入力されたメールアドレス宛に返信メールが送信される可能性があります。メールの受信ができないメールアドレスは入力しないでください。
下のフォームが使用できない場合は、
メールフォーム
を使って管理人にご報告ください。
お名前(必須)
メールアドレス(必須)
本文(必須)
(違反理由など)
引用返信
削除キー/
編集
削除
このスレッドをツリーで一括表示
スレッド内ページ移動 / <<
0
>>
このスレッドに書きこむ
入力内容にタグは利用できません。
引用部分(行頭に「>」や「■」が付いている部分)が全体の 80% 以上のコメントは投稿できません。
半角カナは使用しないでください。文字化けの原因になります。
削除キーを覚えておくと、自分の記事の編集・削除ができます。
記事中に No*** のように書くとその記事にリンクされます(No は半角英字/*** は半角数字)。
使用例)
No123 → 記事No123の記事リンクになります(指定表示)。
No123,130,134 → 記事No123/130/134 の記事リンクになります(複数表示)。
No123-130 → 記事No123〜130 の記事リンクになります(連続表示)。
投稿前に必ずお読みください
初めて投稿される方は、必ず「
書き込みのルールについて(12/4/2更新)
」をお読みください。
読むのが面倒、ルールを守りたくないという方は、「
お気楽掲示板
」へ投稿してください。
質問を投稿する場合は、「
質問をする際のアドバイス
」を参考にしてください。
投稿は、明記のない限り、パブリックドメインになります。
マルチポストされた投稿を報告する時は匿名で投稿し、マルチポストされている場所を併記してください。以下のリンクをクリックしていただくと、自動で下のフォームが埋まりますので、その後「送信」ボタンを押してご投稿ください。
マルチポストの報告をする
マルチポストの報告をするが、マルチポスト先の投稿が嫌がらせである(元の投稿者とは別人が行なっている)可能性が高い
(投稿日時に開きがあり、こちらの投稿の方が早い場合は、その可能性が高いです)
Name
/
E-Mail
/
Title
/
URL
/
Comment/ 通常モード->
図表モード->
(適当に改行して下さい/半角10000文字以内)
File
/
アップ可能拡張子=> /
.gif
/
.jpg
/
.png
/.zip
1) 太字の拡張子は画像として認識されます。
2) 画像は初期状態で縮小サイズ250×250ピクセル以下で表示されます。
3) 同名ファイルがある、またはファイル名が不適切な場合、
ファイル名が自動変更されます。
4) アップ可能ファイルサイズは1回
20KB
(1KB=1024Bytes)までです。
5) ファイルアップ時はプレビューは利用できません。
6) スレッド内の合計ファイルサイズ:[0/300KB]
残り:[300KB]
Icon
/
ホイールロボ
くるりロボ
ぱんだ
ふとめネコ
ねずみ
こあら
疑問ねこ
ランダム
管理者用
(画像を選択/
サンプル一覧
)
削除キー
/
(半角8文字以内)
解決
済
み!
BOX/
解決したらチェックしてください!(スレッドを閉じる目的ではチェックしないでください!)
クリエイティブ・コモンズ・ライセンス
を Comment の末尾に挿入するには、以下のリンクをクリックしてください。(Javascript で挿入しているだけです。)
表示(CC BY)
|
表示-改変禁止(CC BY-ND)
|
表示-継承(CC BY-SA)
|
表示-非営利(CC BY-NC)
|
表示-非営利-改変禁止(CC BY-NC-ND)
|
表示-非営利-継承(CC BY-NC-SA)
プレビュー/
クッキーに保存しない/
Mode/
通常管理
表示許可
Pass/
HOME
HELP
新規作成
新着記事
ツリー表示
スレッド表示
トピック表示
発言ランク
ファイル一覧
検索
過去ログ
-
Child Tree
-