0

シナリオは次のとおりです。

私は自分のウェブサイト用の Windows サービスを書いています。その使命は、これを毎日行うことです。

データベースから保存された画像のリストを取得し、それを list に設定する必要がありますA。また、サーバーにアップロードされたファイルのリストを取得し、それを list に設定しますB

A.Count() は常に b.Count() より <= であることを知っています。

Blistには存在するが list には存在しないアップロードされたファイルを削除する必要がありますA

今、私は2つの質問があります:

  1. 私のドメインがdomain.com; ImagesWindowsサービスからその中のフォルダを取得する方法は?
  2. どの画像を削除する必要があるかを見つけるために、リストBに従ってリストを区別する方法は?A
4

2 に答える 2

1

比較クラスを作成します。比較したいファイルのパラメーターが含まれます(私の場合は名前とサイズ)。次に、アップロードしたファイルを含むデータをデータテーブルにアップロードし、それをファイルリストにリンクします。ファイルシステムから別のリストにファイルをロードします。そして、Victor Mukherjee アプローチを使用して結果リストを見つけます。

あなたのファイルクラス:

class UniqeFile
{
   public string FileName;
   public long Length;
}

あなたのコード:

DataTable yourDataTable;
DateTime yourBeginDateTime, yourEndDateTime;

var listA = new DirectoryInfo("yourPath").GetFiles().Where(fl => fl.CreationTime >= yourBeginDateTime && fl.CreationTime >= yourEndDateTime).Select(fl => new UniqeFile() { FileName = fl.Name, Length = fl.Length }).ToList();

var listB = yourDataTable.Select().Select(dr => new UniqeFile() { FileName = dr["fileName"].ToString(), Length = long.Parse(dr["fileSize"].ToString()) }).ToList();

var ListC = listB.Except(listB.Intersect(listA));
于 2013-10-18T07:45:23.677 に答える