2012-04-30 7 views
6

更新日:私の問題が何であるかはわかりませんでした。ジョン・アーレンの私のタイトルへの編集もまた、誤解の原因となっているようです。タイトルは「フォルダまたはファイルパスを取得する方法は?」に変更されました。それは私が何をしているかではありません。私は、ファイルで動作するダイアログとフォルダで動作するダイアログがあることを理解しています。これらのダイアログのそれぞれは、フォルダまたはファイルのいずれかのパスを返すことができます。私は、ファイルパスを取得する方法を正確にはわからないと述べましたが、その方法を知っていても助けにはなりませんでした。私の元の質問で述べたように単一のWinFormダイアログでフォルダまたはファイルパスを取得するにはどうすればよいですか?

「私は、ユーザーがいくつかのダイアログでフォルダまたはファイルを選択したんだ、私はパスがフォルダまたはファイルに属しているかどうかはわかりません。ユーザーが '開く'ボタンを押すと、現在選択されているディレクトリまたはファイルパスを文字列に格納します。

私がここで意味していたことは、存在していてもいなくてもよいダイアログを使用したかったということでした。ユーザーがファイルやフォルダの後ろにいるかどうかわかりません。ユーザーはこれを知っていますが、ユーザーはパスを認識しません。これがダイアログが使用される理由です。ユーザーは必要なファイルまたはフォルダを検索し、[開く]をクリックします。私のニーズに合わせて1つのダイアログを使用する方が理にかなっています。私は、.NET Frameworkに関する私の経験が限られているので、そのようなダイアログが存在するかどうかを見たいと思っていました。

Jared Kellsの答えは、ほぼ私が探していたものでした。彼が提供したものを読んだ後、そのようなダイアログは存在しないようです。自分の実装を提供する必要があります。

私の独自の実装が登場するのは時間がかかり、難しいことでしょうから、今のところはやりません。私は誰かが非常に有益な答えを提供する場合、答えを選ぶために数日待つでしょう。

私が後にしていたものではなくても、貢献した人に感謝します。

オリジナルのコンテンツ:

私は、フォルダまたはファイルのファイルパスを取得する方法を探しています。私はOpenFileDialogFolderBrowserDialogと一緒に遊んだことがない。 FolderBrowserDialog.SelectedPathを使用してフォルダパスを取得できました。 OpenFileDialogクラスを使用して、私はファイルパスを取得する方法を把握することができませんでした。

私がそれを理解できたとしても、私は依然として拘束力があります。私は、ユーザーがいくつかのダイアログを介してフォルダまたはファイルを選択させるようにしています。私はパスがフォルダまたはファイルに属するかどうかわかりません。ユーザーが「開く」ボタンを押すと、現在選択されているディレクトリまたはファイルパスを文字列に格納します。私が使用したクラスのそれぞれは、ファイルまたはフォルダのいずれかがついているようです。

これはWinFormsダイアログで可能ですか?私はこの時点で私自身のダイアログを書く必要はないと思う。

+0

System.IO.Path名前空間ですべてを見ましたか?そこには良いものがたくさんあります。 – WildCrustacean

+1

OpenFileDialog.FileName – SimpleVar

+0

http://msdn.microsoft.com/en-us/library/system.io.filesysteminfo.attributes.aspxがディレクトリであるかどうかを教えてくれます – Patrick

答えて

2

ファイルとフォルダの両方を選択できる共通のダイアログを表示する方法については、この質問を参照してください。あなたは自分のプロジェクトにFolderBrowserDialogEx.csをコピーすることができるはずhttps://github.com/jkells/folder-browser-dialog-example

:私はここにC#でこれを行う方法の簡単な例を作成した上で

Select either a file or folder from the same dialog in .NET

質問への回答に基づいています。

+0

これは、探している。今の問題は、私が自分の現在のスキル/知識で自分のバージョンを簡単に実装できるとは思わないということです。私は非常に長い間、.Net Frameworkで作業していませんでしたが、私はすでにいくつかの制限に遭遇しました。興味深いことに、私はいつもそれを永遠に学ぶべきこの巨大なコード集と考えていたからです。それはとても広大に見えますが、それでもまだ不足しています。 – Cheese

+0

ちょっとチーズ、私は例で質問を更新しました。 –

7
openFileDialog1.ShowDialog(); 
string filePath = openFileDialog1.FileName; 

ファイルのパスを指定します。

folderBrowserDialog1.ShowDialog(); 
string folderPath = folderBrowserDialog1.SelectedPath; 

フォルダ。

string path = ... 
if(File.Exists(path))...//is file 
if(Directory.Exists(path))...//is folder 

それが何であるかを確認してください。

関連する問題