[解決済み] Path.GetDirectoryNameはどのように動作しますか?
質問
を使用する場合
OpenFileDialog
でファイルを開く場合、当然ながらファイル
ディレクトリ
とその
名前
をクリックしてファイルをロードします(xmlをロードするには、ファイルにアクセスするためにフルパスが必要です。)。
opd
は
OpenFileDialog
if (opd.ShowDialog() == true)
{
var names = opd.FileNames;
foreach (string name in names)
{
LoadFile(Path.Combine(Path.GetDirectoryName(name), name));
}
}
私の質問は、どのように
Path.GetDirectoryName
文字列を取るだけでファイルのパスを取得できますか?
Path.GetDirectoryName(name)
name
は、ただ
string
コンピュータの中には同じ名前のファイルが何千個もあるわけで、そのディレクトリを取得するのでしょうか?
ShortQuestion:
はどこですか?
opd
参照
?
編集する
と思った
opd.FileNames
だけで
名前
メソッド名のため)。
また、面白いことを発見しました。
LoadFile(Path.Combine(Path.GetDirectoryName(name), name));
これは正常に動作します。
Path.Combine
は、文字列の同じ部分をスキップするだけです。
例
string name = @"C:\Users\Default\xml.xml";
string getDirNameResault= Path.GetDirectoryName(name);// this will be C:\Users\Default
したがって、Path.Combineは次のようになります。
Path.Combine(@"C:\Users\Default", @"C:\Users\Default\xml.xml)
魔女返し
"C:\Users\Default\xml.xml"
!
解決方法は?
<ブロッククオート名前は単なる文字列であり、このメソッドは文字列を取るだけでそのディレクトリを取得しますか? コンピュータ内に同じ名前のファイルが何千もある可能性があります。
name
にはフルパスが含まれます。
Path.GetDirectoryName()
は、最後のディレクトリ区切り文字以降をすべて取り除くだけです。
Path.Combine(Path.GetDirectoryName(name), name)
は何の役にも立ちません。
:
path2 がルートを含む場合、path2 が返されます。
を使うだけです。
name
を直接指定します。
関連
-
[解決済み] enumを列挙するには
-
[解決済み] intをenumにキャストするにはどうすればよいですか?
-
[解決済み] C#で文字列のエンコーディングを手動で指定せずに、一貫性のあるバイト表現を得るには?
-
[解決済み] 乱数(int)を生成する方法を教えてください。
-
[解決済み] DateTime型の誕生日から年齢を計算するにはどうしたらいいですか?
-
[解決済み] Microsoft Officeをインストールせずに、C#でExcel(.XLSおよび.XLSX)ファイルを作成するにはどうすればよいですか?
-
[解決済み] Pythonでパスから拡張子なしでファイル名を取得する方法は?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】C#でCSVファイルをパースする、ヘッダー付き
-
[解決済み】パスコンポーネントの命名基準とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] エンティティタイプ ApplicationUser は、現在のコンテキストのモデルの一部ではありません。
-
[解決済み】Ajax処理で「無効なJSONプリミティブ」と表示される件
-
[解決済み] メンバー '<メンバー名>' にインスタンス参照でアクセスできない
-
[解決済み】ASP.NET Core Dependency Injectionのエラーです。アクティブ化しようとしているときに、タイプのサービスを解決できません。
-
解決済み] Critical error detected c0000374 - C++ dll returns pointer off allocated memory to C# [解決済み] Critical error detected c0000374 - C++ dll returns pointer off allocated memory to C#.
-
[解決済み】プロジェクトビルド時のエラー。エディタでスクリプトにコンパイルエラーがあるため、Playerのビルドにエラーが発生する
-
[解決済み】Visual Studio: 操作を完了できませんでした。パラメータが正しくありません
-
[解決済み】 C# 条件演算子エラー 代入、call、increment、decrement、await、new object 式のみ文として使用可能です。
-
[解決済み】IntPtrとは一体何なのか?
-
[解決済み】ユーザー設定値を別のユーザー設定値で設定する