1

私はC#を初めて使用します(1週間未満)。ボリューム上のファイルを削除する次のコードがあります。SQL データベースのバックアップ ファイルです。そして、それは定期的に成長し続けるので、ファイルの名前を変更し、新しいファイルがバックアップされた後に削除する必要があります. バックアップが実行されたかどうかを評価する必要があり、ファイルを削除しても問題ありません。

    using System;
using System.IO;

class Program
{
    static void Main()
    {
        //
        // Delete a file found on the D:\ volume.
        // If the file is not found (File doesn't exist),
        // then you will get an exception.
        //
        try
        {
            File.Delete(@"\\Fabtrol-2\Program Files (x86)\FabTrolBackUp\FT_Trans_Log_Appendedold.BAK"); // Try to delete
            Console.WriteLine("Deleted"); // Success
        }
        catch (IOException ex)
        {
            Console.WriteLine(ex); // Write error
        }
    }
}

これがロジックです。私があまりにも多くを求めている場合は、私に知らせてください:

  • 今日の日付が月曜日で、ファイル FT_FabTrol_Sun_Full.BAK の日付が 2 日未満の場合、FT_Trans_Log_Appendedold.BAK という名前のファイルを削除してもかまいません。
  • それ以外の場合、今日の日付が火曜日で、ファイル FT_FabTrol_Mon_Full.BAK の日付が 2 日未満の場合、FT_Trans_Log_Appendedold.BAK という名前のファイルを削除してもかまいません。
  • それ以外の場合、今日の日付が水曜日で、ファイル FT_FabTrol_Tues_Full.BAK の日付が 2 日未満の場合、FT_Trans_Log_Appendedold.BAK という名前のファイルを削除してもかまいません。
  • それ以外の場合、今日の日付が木曜日で、ファイル FT_FabTrol_Wed_Full.BAK の日付が 2 日未満の場合、FT_Trans_Log_Appendedold.BAK という名前のファイルを削除してもかまいません。
  • それ以外の場合、今日の日付が金曜日で、ファイル FT_FabTrol_Thurs_Full.BAK の日付が 2 日未満の場合、FT_Trans_Log_Appendedold.BAK という名前のファイルを削除してもかまいません。
  • それ以外の場合、今日の日付が土曜日で、ファイル FT_FabTrol_Fri_Full.BAK の日付が 2 日未満の場合、FT_Trans_Log_Appendedold.BAK という名前のファイルを削除してもかまいません。
  • それ以外の場合、今日の日付が日曜日で、ファイル FT_FabTrol_Sat_Full.BAK の日付が 2 日未満の場合、FT_Trans_Log_Appendedold.BAK という名前のファイルを削除してもかまいません。
4

7 に答える 7

0

@Gray のコメントに基づいて構築された FileInfo オブジェクトは.Exists、ファイルがまだ存在するかどうかを知るために try/catch に依存する必要性を軽減し、それがあるかどうかも通知します。

次の点を考慮してください。

static void Main()
{
    FileInfo fi = new FileInfo(@"\\path\\to\\file.bak");

    if(fi.Exists)
    {
        try
        {
            //because we can still get errors based on permissions etc.
            fi.Delete(); 
            Console.WriteLine("Deleted"); // Success
        }
        catch (IOException ex)
        {
            Console.WriteLine(ex); // Write error
        }  
    }
}
于 2013-06-27T13:55:37.000 に答える
0

個人的には、1週間の経験で、あなたは深いところに飛び込んだと思います.

コードを提供するつもりはありません。むしろ、学習を改善するように指示します。これは疑似コードと呼ばれます。

  1. streamwriter /reader と filewriter と fileinfo を調べてください。
  2. これから、ファイルの読み取り、削除、名前の変更、または本当に必要なものを何でも実行できます。
  3. 次に、自分がしていることをどのように検証できるかを理解しようとする必要があります。残念ながら、初心者にとってこれはあなたが思っているより難しく、最初の 2 つのポイントよりも難しい人もいます。単純なことから考えてください。私たち開発者は通常、物事を複雑にしすぎます。ファイルが正しい限り、この部分は実際にはかなり簡単です!

これは検証に役立つ可能性があるため、単体テストを検討することをお勧めします。

于 2013-06-27T13:53:37.123 に答える