2017-02-23 3 views
2

こんにちは私はファイルエクスプローラからデータグリッド内のファイルのリストを表示するWPFアプリケーションを作成し、ユーザーはそのデータグリッド内の行を選択してファイルを選択できます。ボタンをクリックすると、ユーザーはファイルのパス(ファイルが格納されているフォルダ)を取得できます。 \ Tempに\ディレクトリ\サンプル\プロジェクトと私はオブジェクトのパスを解析して特定のフォルダを抽出する

var Form = new Example.Form() 
       { 
        Path = Path.GetFileNameWithoutExtension(fldDlg.SelectedPath), 
        Title = string.Empty 
       }; 

       formlist.Add(Form); 

が、私はそれが私が表示したいファイルを持っているので、ルートフォルダとしてプロジェクトを設定するオブジェクトを作成しただけでなく、そこにある:私のデフォルトのファイル・パスは、Hであります同じ種類の追加ファイルを含むプロジェクトフォルダ内のサブフォルダ。だから私はそれがこのように構築されているように、Formオブジェクトにパスを解析する:

File1.rpt

Subfolder1 \ subfolder2 \プロジェクトとして設定する必要があり

file2.rptルートフォルダ。

だから私は、次の問題に役立ちたい:

  1. は、ルートフォルダ
  2. としてプロジェクトを設定し、それは私が
  3. 上記の形式で構築されるように、オブジェクトのパスを解析パスは、H:\ Temp \ Directory \ Sample \ Projects \ File1.rptやH:\ Temp \ Directory \ Sample \ Projects \ Subfolder1 \ subfolder2 \ file2.rptのようになります。プロジェクト。

答えて

0

私はルートパスを自分で追加します。

(この方法は、私は1つのベースパスに貼りませんよ)しかし、あなたが本当にしたい場合、あなたは私がルートフォルダ名を削除しますEnvironment.CurrentDirectory

を使用することができます

のような何か:

string path =  @"H:\Temp\Directory\Sample\Projects\Subfolder1\Subfolder2\file2.rpt"; 
string rootPath = @"H:\Temp\Directory\Sample\Projects\"; 

// check check, double check... 
if(path.StartsWith(rootPath)) 
{ 
    subPath = path.Substring(rootPath.Length); 
} 
パスから

は与える:私はレポートファイルを取得したい場合

Subfolder1\Subfolder2\file2.rpt 
+0

だから、私はその文字列パスにも同様にハードコードする必要があり、その後のプロジェクトフォルダに直接であるfile1.rptを言うの? – user0594

+0

私はハードコード文字列をアドバイスしません。これらのベースパスはconfigfileに置かなければなりません。上記の例は単なる例であり、解決策ではありません。 –

関連する問題