bugfix> c# > 投稿

現在に設定されている3つの文字列があります。それぞれ「DateTimeNow」を使用して年、月、日です。デスクトップ上のテキストファイルからファイルパスを取得することにより、「Custom_project」という名前のルートフォルダーの文字列へのパスを設定しました。

彼らは名前が付けられます:

public string CurrentYear;
public string CurrentMonth;
public string CurrentDay;
public string CustomOrderFilePathTopFolder = File.ReadAllText("C:/desktop/Custom_project.txt");
//CustomOrderFilePathTopFolder now ='s C:/desktop/Custom_project/

わかりましたので、フォルダが存在するかどうかを確認しようとしています(フォルダ名:「CurrentYear」、またはこの場合は「Custom_project」フォルダ内の「2020」)。存在しない場合は、文字列を含むフォルダを作成します。存在している場合は、次のステップに進みます。基本的にはファイルを開きます。「CurrentYear」または「2020」と同じことを繰り返しますが、そのフォルダー内:Custom_project/2020を月に繰り返し、最後に1日繰り返します。

したがって、最終的には「C:/ desktop/Custom_project/2020/07/12」のようなファイルパスになります。

今私の質問に: 「「2020」という名前のファイルがCUSTOMPATHFOLDER内に存在するかどうかを確認する方法と、それが作成されていない場合

私はこれを使ってみました(うまくいかないようです):

       if (CustomOrderFilePathTopFolder == "")
        {
            MessageBox.Show("ERROR FILE PATH CANNOT BE EMPTY!");
        }
        else if (!Directory.Exists(CustomOrderFilePathTopFolder + CurrentYear))
        {
            Directory.CreateDirectory(CustomOrderFilePathTopFolder + CurrentYear);
        }

これは私には何もしないので、私はこれを試しました:

       if (CustomOrderFilePathTopFolder == "")
        {
            MessageBox.Show("ERROR FILE PATH CANNOT BE EMPTY!");
        }
        else if (!Directory.Exists(CustomOrderFilePathTopFolder + "/" + CurrentYear))
        {
            Directory.CreateDirectory(CustomOrderFilePathTopFolder + "/" + CurrentYear);
        }

どちらでも機能しないので困っています。どうすればこれに対処できるか教えてください。

回答 1 件
  • 以下の手順をお試しください

    最初に適切なファイル/フォルダーを指すようにパスを組み合わせる必要があります

    ファイルが存在するかどうかを確認してください

    そうでない場合は、同じ名前のフォルダを作成します。

    using System.IO;
    ...
    var filePath = Path.Combine(CustomOrderFilePathTopFolder, CurrentYear))
    if (!File.Exists(filePath))
    {
        Directory.CreateDirectory(filePath);
    }
    
    

あなたの答え