我正在用c#创建一个时间机器。时间机器是一种创建我的文件备份的方式,可以像我在特定时间访问特定文件一样。无论如何,我这样做的方式是通过查找目录中的所有文件,并将这些文件信息存储在名为table1的表中。所以,如果我第一次扫描我的电脑让我们假设我只有3个文件,所以我的表看起来像:同一张表上的外部连接sql
ID FullName DateModified DateInsertedToDatabase
1 C:\A 456588731 0
2 C:\B 955588762 0
3 C:\C 854587783 0
可以说,下一次我执行备份我有同样的3个文件,但我有创建一个新的文件,并修改文件C.其结果是我的表,现在应该是这样的:
ID FullName DateModified DateInsertedToDatabase
1 C:\A 456588731 0
2 C:\B 955588762 0
3 C:\C 854587783 0
4 C:\A 456588731 1
5 C:\B 955588762 1
6 C:\C 111122212 1
7 C:\X 123212321 1
现在我会想文件C和文件X复制,因为这些是已更改或创建的文件。我怎样才能建立一个查询,我可以获得文件X和文件C?换句话说,我想所有有DateInsertedToDatabase = 1,该文件不匹配文件,其中DateInsertedToDatabase小于1
如果我没有说清楚这是我的例子的延续: 让说我继续我的榜样,我删除文件:B和C,我修改文件X,我创建一个新的文件Z.我的表应该是这样的:
ID FullName DateModified DateInsertedToDatabase
1 C:\A 456588731 0
2 C:\B 955588762 0
3 C:\C 854587783 0
4 C:\A 456588731 1
5 C:\B 955588762 1
6 C:\C 111122212 1
7 C:\X 123212321 1
8 C:\A 456588731 2
9 C:\X 898989898 2
10 C:\Z 789564545 2
在这里我会想获取文件X和Z因为文件X被修改并且File Z被创建。我不想获取文件A,因为该文件已经存在相同的DateModified。我如何构建该查询?
+1 #tablename是SQLite中的一个语法错误,但通用技术是健全的。 – pilcrow 2011-06-15 03:39:56