C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
掲示板トップ
C# と VB.NET のサンプル
新規作成
利用方法/規約
ツリー表示
トピック表示
ランキング
記事検索
過去ログ
■103325
/ 3階層)
ワイルドカードを含んだ置換について
□投稿者/ とっちゃん
(833回)-(2024/09/23(Mon) 15:35:50)
■
No103324
(素人 さん) に返信
> ご返信ありがとうございます。
> 質問(実現したいこと)が整理できてませんでした。すみません。
>
> 【前提】
> ログオンユーザーが例えば、person1、person2といる場合、
> ユーザーにより、下記のようにパスが異なります。
>
> c:\users\person1\box\bbb\ccc
> c:\users\person2\box\aaa\bbb\ccc
>
> boxのフォルダ名はユーザー共通、位置もユーザー名フォルダ配下でユーザー共通です。
> bbb配下もユーザー共通ですが、boxとbbbの間にaaaのように別フォルダが挟まって見えるユーザーがいます。
>
C:\Users\person1 を見てるかどうかは、Environment.GetEnvironmentVariable("userprofile") で得た値と
比較する、あるいは、そうなっているであろうということでReplaceメソッドで置き換えてしまう(一致しなければ
変わらないので問題ない)という方法もあります。
> 【実現したいこと】
> 上記前提のパスの文字列をインプットとして
> どちらのユーザーも、
> %userprofile%\box\aaa\bbb\ccc
> のパスに変換したいです。
>
person1 は、C:\Users\person2\box\... を選択することがあり得るのでしょうか?
また、person1 が選択したという情報は、person2と共有されるのでしょうか?
そのあたりが質問者の思っている部分が伝わっていないのだと思います。
もし、person1 が選択しているであろうフォルダは C:\Users\person1\... となっており
person2は、C:\Users\person2\... となっていることが前提条件として成り立つのであれば
そのままReplaceメソッドで置き換えてしまえばよいと思いますが?
> @c:\users\ユーザー名 を %userprofile%に変換したい
> ログオンユーザーにより異なるユーザー名を*(ワイルドカード)として変換できず困っています。
>
> Abox\bbbがあればbox\aaa\bbb\cccに変換したい
>
文字列の入れ替えは、string.Replace メソッドで変換できます。
@の場合は、変換元が Environment.GetEnvironmentVariable("USERPROFILE") でとってきた値
変換後の値が "%USERPROFILE%" になります。
Aの場合は、変換元が "box\\bbb" 変換後の値が "box\\aaa\\bbb\\ccc" になります。
Replace メソッドには大文字小文字を区別しないパターンもあるのでどう使うかは状況を
考慮して使い分けしてください。
・Environment.GetEnvironmentVariable メソッド
https://learn.microsoft.com/ja-jp/dotnet/api/system.environment.getenvironmentvariable?WT.mc_id=DT-MVP-32182&view=net-8.0
・string.Replace メソッド
https://learn.microsoft.com/ja-jp/dotnet/api/system.string.replace?WT.mc_id=DT-MVP-32182&view=net-8.0
おまけ
%USERPROFILE%\\box\\aaa\\bbb\\ccc を実際のパスに変換するためのメソッド
・Environment.ExpandEnvironmentVariables メソッド
https://learn.microsoft.com/ja-jp/dotnet/api/system.environment.expandenvironmentvariables?WT.mc_id=DT-MVP-32182&view=net-8.0
編集キー/
編集
前の記事
(元になった記事)
次の記事
(この記事の返信)
←Re[2]: ワイルドカードを含んだ置換について
/素人
→Re[4]: ワイルドカードを含んだ置換について
/素人
上記関連ツリー
ワイルドカードを含んだ置換について
/ 素人
(24/09/23(Mon) 07:06)
#103322
└
Re[1]: ワイルドカードを含んだ置換について
/ ぶなっぷ
(24/09/23(Mon) 10:10)
#103323
└
Re[2]: ワイルドカードを含んだ置換について
/ 素人
(24/09/23(Mon) 13:02)
#103324
└
ワイルドカードを含んだ置換について
/ とっちゃん
(24/09/23(Mon) 15:35)
#103325
←Now
└
Re[4]: ワイルドカードを含んだ置換について
/ 素人
(24/09/23(Mon) 19:39)
#103326
解決済み
上記ツリーを一括表示
/
上記ツリーをトピック表示
上記の記事へ返信
入力内容にタグは利用できません。
他人を中傷する記事は管理者の判断で予告無く削除されます。
半角カナは使用しないでください。文字化けの原因になります。
名前、コメントは必須記入項目です。記入漏れはエラーになります。
入力内容の一部は、次回投稿時の手間を省くためブラウザに記録されます。
URL は自動的にリンクされます。
記事中に No*** のように書くとその記事にリンクされます(No は半角英字/*** は半角数字)。
名前
(*必須)
E-Mail (任意)
Web サイト (任意)
投稿モード
通常モード
図表モード (ソースコードを貼る場合はこちらを使用)
本文
(質問の場合は、開発環境・使用言語のバージョンなどを最初に書いてください)
■No103325 (とっちゃん さん) に返信 > ■No103324 (素人 さん) に返信 >>ご返信ありがとうございます。 >>質問(実現したいこと)が整理できてませんでした。すみません。 >> >>【前提】 >>ログオンユーザーが例えば、person1、person2といる場合、 >>ユーザーにより、下記のようにパスが異なります。 >> >>c:\users\person1\box\bbb\ccc >>c:\users\person2\box\aaa\bbb\ccc >> >>boxのフォルダ名はユーザー共通、位置もユーザー名フォルダ配下でユーザー共通です。 >>bbb配下もユーザー共通ですが、boxとbbbの間にaaaのように別フォルダが挟まって見えるユーザーがいます。 >> > > C:\Users\person1 を見てるかどうかは、Environment.GetEnvironmentVariable("userprofile") で得た値と > 比較する、あるいは、そうなっているであろうということでReplaceメソッドで置き換えてしまう(一致しなければ > 変わらないので問題ない)という方法もあります。 > > >>【実現したいこと】 >>上記前提のパスの文字列をインプットとして >>どちらのユーザーも、 >>%userprofile%\box\aaa\bbb\ccc >>のパスに変換したいです。 >> > > person1 は、C:\Users\person2\box\... を選択することがあり得るのでしょうか? > また、person1 が選択したという情報は、person2と共有されるのでしょうか? > > そのあたりが質問者の思っている部分が伝わっていないのだと思います。 > > もし、person1 が選択しているであろうフォルダは C:\Users\person1\... となっており > person2は、C:\Users\person2\... となっていることが前提条件として成り立つのであれば > そのままReplaceメソッドで置き換えてしまえばよいと思いますが? > >>@c:\users\ユーザー名 を %userprofile%に変換したい >>ログオンユーザーにより異なるユーザー名を*(ワイルドカード)として変換できず困っています。 >> >>Abox\bbbがあればbox\aaa\bbb\cccに変換したい >> > 文字列の入れ替えは、string.Replace メソッドで変換できます。 > > @の場合は、変換元が Environment.GetEnvironmentVariable("USERPROFILE") でとってきた値 > 変換後の値が "%USERPROFILE%" になります。 > > Aの場合は、変換元が "box\\bbb" 変換後の値が "box\\aaa\\bbb\\ccc" になります。 > > Replace メソッドには大文字小文字を区別しないパターンもあるのでどう使うかは状況を > 考慮して使い分けしてください。 > > > ・Environment.GetEnvironmentVariable メソッド > https://learn.microsoft.com/ja-jp/dotnet/api/system.environment.getenvironmentvariable?WT.mc_id=DT-MVP-32182&view=net-8.0 > > ・string.Replace メソッド > https://learn.microsoft.com/ja-jp/dotnet/api/system.string.replace?WT.mc_id=DT-MVP-32182&view=net-8.0 > > > > おまけ > > %USERPROFILE%\\box\\aaa\\bbb\\ccc を実際のパスに変換するためのメソッド > > ・Environment.ExpandEnvironmentVariables メソッド > https://learn.microsoft.com/ja-jp/dotnet/api/system.environment.expandenvironmentvariables?WT.mc_id=DT-MVP-32182&view=net-8.0 > >
編集キー
自分の投稿を編集する時に必要です
(半角8文字以内)
解決済み
/
解決したらチェックしておきましょう。
プレビュー/
管理者用
-
Child Tree
-