public void PackageFile(FileInfo pkgFileInfo) { string sql = "insert into [FileSystem](FileName,FileDir,FileSize,HashCode,BinData,FileVersion,CreateDate,LastChangeDate) values(" + "@FileName,@FileDir,@FileSize,@HashCode,@BinData,1, @CreateDate, @LastChangeDate" + ")"; VistaDBCommand cmd = new VistaDBCommand(sql, conn); cmd.Parameters.AddWithValue("@FileName", pkgFileInfo.Name); cmd.Parameters.AddWithValue("@FileDir", pkgFileInfo.DirectoryName.Replace(BaseDir, "").Replace("\\", "/")); cmd.Parameters.AddWithValue("@FileSize", pkgFileInfo.Length); byte[] fBin = InitialProject.GetFileBytes(pkgFileInfo.FullName); cmd.Parameters.AddWithValue("@HashCode", InitialProject.GetMD5Hash(fBin)); cmd.Parameters.AddWithValue("@BinData", fBin); cmd.Parameters.AddWithValue("@CreateDate", pkgFileInfo.CreationTimeUtc); cmd.Parameters.AddWithValue("@LastChangeDate", pkgFileInfo.LastWriteTimeUtc); cmd.ExecuteNonQuery(); cmd.Dispose(); }
/// <summary> /// 同步文件 /// </summary> /// <param name="currentFile">The current file.</param> public void SynFileInfo(FileInfo currentFile) { //检查项目中是否存在该文件(目录+文件名) //比较文件:是否更新? string sql = string.Format("select top 1 FileID from [FileSystem] where ProjectID={0} AND FileDir='{1}' AND FileName='{2}'", 1, currentFile.DirectoryName.Replace(BaseDir, "").Replace("\\", "/"), currentFile.Name); VistaDBCommand cmd = new VistaDBCommand(sql, conn); object oFileID = cmd.ExecuteScalar(); if (oFileID == null) { PackageFile(currentFile); } else { #region 比较版本 #endregion #region 插入新文件 sql = "insert into [FileSystem](FileName,FileDir,FileSize,HashCode,BinData,FileVersion,CreateDate,LastChangeDate) values(" + "@FileName,@FileDir,@FileSize,@HashCode,@BinData,2, @CreateDate, @LastChangeDate" + ")"; VistaDBCommand cmdAdd = new VistaDBCommand(sql, conn); cmd.Parameters.AddWithValue("@FileName", currentFile.Name); cmd.Parameters.AddWithValue("@FileDir", currentFile.DirectoryName.Replace(BaseDir, "").Replace("\\", "/")); cmd.Parameters.AddWithValue("@FileSize", currentFile.Length); byte[] fBin = InitialProject.GetFileBytes(currentFile.FullName); cmd.Parameters.AddWithValue("@HashCode", InitialProject.GetMD5Hash(fBin)); cmd.Parameters.AddWithValue("@BinData", fBin); cmd.Parameters.AddWithValue("@CreateDate", currentFile.CreationTimeUtc); cmd.Parameters.AddWithValue("@LastChangeDate", currentFile.LastWriteTimeUtc); cmd.ExecuteNonQuery(); cmd.Dispose(); #endregion } }