1

アプリのロガーを作成していますが、ログ ファイルを C ドライブに保存する必要がありますが、コードを実行すると、「指定されたパス形式はサポートされていません」というエラーが表示されます。現在のコードを以下に示します

string path="C:\\Logger\\"+DateTime.Now.Date.ToString()+".txt";

    public void CreateDirectory()
    {
        if(!File.Exists(path))
        {
            File.Create(path);
        }
    }

解決策はありますか????

4

2 に答える 2

6

日付をフォーマットする必要があります:

string path="C:\\Logger\\"+DateTime.Now.Date.ToString("yyyy_MM_dd")+".txt";

オペレーティング システムは次のようなものを受け入れないためです。

C:\Logger\07/27/2013.txt

ここで、今後の参考のPath.Combineために、パスの作成に使用することを検討してください。

var path = Path.Combine("C:\\Logger",
    DateTime.Now.Date.ToString("yyyy_MM_dd"),
    ".txt");

バックスラッシュをいつ提供し、いつ提供しないかを決定する必要はありません。存在しない場合は、追加されます。

最後に、ディレクトリが存在しない場合、問題が発生する可能性があります。それを軽減するためにできることは次のとおりです。

var path = ...
var dir = Path.GetDirectoryName(path);

if (!Directory.Exists(dir))
{
    Directory.Create(dir);
}

ただし、その場合でも、実行時にアクセス許可の問題が発生する可能性があります。

于 2013-07-27T09:45:45.880 に答える
1

この結果を確認してください:DateTime.Now.Date.ToString()オペレーティング システムによって受け入れられます。

于 2013-07-27T09:44:52.313 に答える