2017-09-19 24 views
0

以下のコードについて何が間違っているかわかりません。がmscorlib.dllで 'System.ArgumentExceptionの'c#パス内の不正な文字

追加情報:パス内の不正な文字はライン4

private void ProcessCsvsReplaceNullsWithSpaces() 
{ 
    string server = ConfigurationSettings.AppSettings["RapServer"]; 
    string importDir = ConfigurationSettings.AppSettings["importDir"]; 
    string fileName = server + @"\" + importDir + "\\EMIR_VU_E_*.csv"; 
    string replacenull = File.ReadAllText(fileName); 
    replacenull = replacenull.Replace("null", ""); 
    File.WriteAllText(fileName, replacenull); 
} 

スロー例外でエラーがスローされます。

+0

;'と 'ConfigurationSettings.AppSettings [ "importDir"];'? – SeM

+0

アスタリスクは、ReadAllTextで使用されるファイル名の有効な文字ではありません。複数のファイルを一致させるために使用されるワイルドカードです。複数のファイルを読みたい場合は、ディレクトリメソッドを使用して、一つ。 – PaulF

+2

単一のファイル名に '* 'が含まれていない –

答えて

4

パスに無効なパス文字が含まれているかどうかは、いつでも確認できます。 Path.GetInvalidPathCharsメソッドを反復してみてください。

See the documentation of msdn

これは、すべての無効な文字が一覧表示されます。あなたのファイル名はいけません。今、あなたは、これが本当であれば、いくつか他の人が述べたように、そのリストに

bool containsInvalidChars = (!string.IsNullOrEmpty(filepath) 
     && filepath.IndexOfAny(System.IO.Path.GetInvalidPathChars()) >= 0); 

に一致するすべての文字がある場合は、あなたがあなたのパス

に無効な文字を持って確認するようにパスを繰り返すことができます

これはメソッドです:System.IO.Path.GetInvalidFileNameChars()

あなたはまた、あなたのファイル名に無効な文字が含まれているかどうか、チェックする必要があります *文字

が含まれています

ここでは見つける*: `ConfigurationSettings.AppSettings [ "RapServer"]の中身は何

enter image description here

関連する問題