2012-05-11 14 views
3

に私は以下のコードを使用してパスに不正な文字を取得しています:C#の不正な文字パス

string fileNameExisting = Application.StartupPath + "\\CodesLocation\\Template.pdf"; 
PdfReader templateFile = new PdfReader(fileNameExisting); 

私はいくつかのバリエーションテスト:

string fileNameExisting = @Application.StartupPath + "\CodesLocation\Template.pdf"; 
PdfReader templateFile = new PdfReader(fileNameExisting); 

しかし、それはまだ同じになっているが不正なエラーです。

誰かが私のコードが間違っているかどうか確認するのを助けることができますか?

ありがとうございました。

+5

なぜ 'fileNameExisting'を出力しないので、違法な文字が何であるかがわかります。 – Nick

+0

Application.StartupPathの値と共有を確認します。 –

+0

これはc:\ Projects ...問題があれば返信してみましょう – kyusan93

答えて

10

私は.NETのパスに参加する適切な方法を使用することをお勧め: Path.Combine

ので

Path.Combine(Application.StartupPath, "CodesLocation","Template.pdf"); 
+0

私は私のノートパソコンを持っているときに試してみましょう...とにかく、助けてくれてありがとう – kyusan93

+0

それはC:\ Projects \ CodesLocation \ Template.pdfを表示しています...それでも同じ違法なエラーが発生しています。 – kyusan93

2

文字列リテラルの前でのAnは(変数の前でそれを明示的になどの可変ないキーワードをマーク)エスケープ\をオフにします:

Path.Combine(Application.StartupPath, @"CodesLocation\Template.pdf"); 

そしてPath.Combineは、最新技術でありますパスを連結する方法(プラットフォームに依存せず、追加のスラッシュを処理します)。

2

あなたは最高の
Path.Combine(Application.StartupPath, "CodesLocation\\Template.pdf")を使用する必要があります。 Application.StartupPathの末尾が\の場合は、そのチェック以外です。

+0

Application.StartupPathは\で終わらず、Path.Combineではまだ動作していません。 – kyusan93

関連する問題