2010-08-30 39 views
0

我有一个类似于SVN的网站,但没有版本控制。用户可以上传和下载到项目,其中每个项目都有一个目录(与子目录和文件)在服务器上。我想要做的是给文件附加更多的信息,比如谁上传了文件,下载了多少次,等等。有没有办法做到这一点的FileInfo,或者我应该将它存储在一个表中,它将自己与绝对路径或什么?这种方式听起来不妥和易出错:\将任意数据附加到DirectoryInfo/FileInfo?

回答

1

可以使用NTFS(默认的Windows文件系统,我假设您正在使用)将数据追加到任意文件。你会使用alternate data streams。 Microsoft将此用于扩展元数据,如作者和Office文档中的摘要信息。

不过,我认为数据库方法是合理的,广泛使用的,并且更不容易出错。除非您真正更改其内容,否则修改原始文件并不是一个好主意。

+0

谢谢。我的想法是将数据库条目“键入”到适当的绝对路径?有没有做这样的事情的例子? – 2010-08-30 04:23:17

+0

@George:当我这样做时,我通常至少有一些“FileID”(主键)和“File Name”。其他元数据将进入这个或相关表格。在上传时,我将文件重命名为(唯一)文件ID,然后在下载时将其重命名为。我们也会将这些文件分成100或500个批次,以使手动目录遍历更容易。 – 2010-08-30 16:31:22

0

正如Michael Petrotta指出的那样,备用数据流是一个很好的想法。 Here's a C# tutorial with code.真的,数据库是要走的路。 SQL Compact和SQLite的影响相当小,而且易于使用。