コード例 #1
0
ファイル: UpdateFiles.cs プロジェクト: solaran/LiveUpdater
 public static void DeleteFile(UpdateFile uFile)
 {
     SqlCommand command = new SqlCommand("DELETE FROM LiveUpdate WHERE FS_KEY = " + uFile.Key);
     ExecuteCommand(command);
     command = new SqlCommand("DELETE FROM LiveUpdate_FileData WHERE FD_KEY = " + uFile.DataKey);
     ExecuteCommand(command);
 }
コード例 #2
0
ファイル: UpdateFiles.cs プロジェクト: solaran/LiveUpdater
 public static void AddUpdateFile(UpdateFile uFile)
 {
     if (uFile.DataRow.RowState == DataRowState.Detached)
     {
         uFile.DataKey = InsertData(uFile);
         uFile.CreateDate = DateTime.Now;
         dataFileInfo.Rows.Add(uFile.DataRow);
     }
     else
     {
         UpdateData(uFile);
     }
 }
コード例 #3
0
ファイル: UpdateFiles.cs プロジェクト: solaran/LiveUpdater
 public static byte[] GetFile(UpdateFile uFile)
 {
     return GetFileData(uFile);
 }
コード例 #4
0
ファイル: UpdateFiles.cs プロジェクト: solaran/LiveUpdater
 public void SaveTo(UpdateFile uFile, string path)
 {
     if (!File.Exists(Path.GetDirectoryName(path)))
         Directory.CreateDirectory(Path.GetDirectoryName(path));
     path = Path.Combine(path, uFile.Name);
     try
     {
         string md5 = Helper.ComputeMD5Checksum(path);
         if (md5 != uFile.MD5)
         {
             byte[] bytes = Data.GetFile(uFile);
             SaveToDisk(path, bytes);
             FileInfo info = new FileInfo(path);
             info.LastWriteTime = uFile.FileDate;
             log.InfoFormat("Updated: {0}, {1}, {2}", uFile.Name, uFile.DestinationPath, uFile.FileSize);
         }
     }
     catch (IOException e)
     {
         log.Error(e.Message);
     }
 }
コード例 #5
0
ファイル: UpdateFiles.cs プロジェクト: solaran/LiveUpdater
 public void SaveAs(UpdateFile uFile, string path)
 {
     byte[] bytes = Data.GetFile(uFile);
     SaveToDisk(path, bytes);
 }
コード例 #6
0
ファイル: UpdateFiles.cs プロジェクト: solaran/LiveUpdater
 public void DeleteFile(UpdateFile uFile)
 {
     Data.DeleteFile(uFile);
     HasChanges = true;
 }
コード例 #7
0
ファイル: UpdateFiles.cs プロジェクト: solaran/LiveUpdater
 private static void UpdateData(UpdateFile uFile)
 {
     byte[] bytes = GetFileData(uFile);
     SqlCommand command = new SqlCommand("UPDATE LiveUpdate_FileData SET FD_DATA = @Data WHERE FD_KEY = @Key");
     command.Parameters.Add("@Data", SqlDbType.Binary, 0, "FD_DATA").Value = bytes;
     command.Parameters.Add("@Key", SqlDbType.Int, 0, "FD_Key").Value = uFile.DataKey;
     ExecuteCommand(command);
 }
コード例 #8
0
ファイル: UpdateFiles.cs プロジェクト: solaran/LiveUpdater
 private static int InsertData(UpdateFile uFile)
 {
     byte[] bytes = GetFileData(uFile);
     uFile.Name = Path.GetFileName(uFile.Name);
     SqlCommand command = new SqlCommand("INSERT INTO LiveUpdate_FileData VALUES(@Data) SELECT @@IDENTITY");
     command.Parameters.Add("@Data", SqlDbType.Binary, 0, "FD_DATA").Value = bytes;
     object key = ExecuteScalarCommand(command);
     return int.Parse(key.ToString());
 }
コード例 #9
0
ファイル: UpdateFiles.cs プロジェクト: solaran/LiveUpdater
 private static byte[] GetFileData(UpdateFile uFile)
 {
     if (uFile.DataRow.RowState == DataRowState.Detached)
     {
         using (BinaryReader reader = new BinaryReader(File.Open(uFile.Name, FileMode.Open, FileAccess.Read), Encoding.UTF8))
         {
             byte[] bytes = new byte[reader.BaseStream.Length];
             reader.Read(bytes, 0, bytes.Length);
             return bytes;
         }
     }
     else
     {
         SqlCommand command = new SqlCommand("SELECT FD_DATA FROM LiveUpdate_FileData WHERE FD_KEY = " + uFile.DataKey);
         object data = ExecuteScalarCommand(command);
         return (byte[])data;
     }
 }