/// <summary> /// バックアップファイルから復元する /// </summary> /// <param name="filepath">ファイル名</param> /// <param name="db">DB接続</param> /// <param name="password">ZIPパスワード</param> /// <param name="aesEncryption">AES符号化を用いるかどうか</param> /// <param name="truncateFlag">テーブルを全てTruncateするかどうか</param> /// <returns>復元したテーブル数</returns> /// <remarks> /// <para> /// ファイル読み取りの前に、テーブルの全レコードが削除されます。 /// 不適切なフォーマットのレコードは無視されます。 /// </para> /// </remarks> public int Load(string filepath, DBCon db, string password = null, bool aesEncryption = false, bool truncateFlag = false) { db.LOG_DEBUG("Loading backup file {0}", filepath); using (Stream sr = FileUtil.BinaryReader(filepath)) { if (sr == null) { throw new IOException(String.Format("Can't open {0} for reading.", filepath)); } return(Load(sr, db, password, aesEncryption, truncateFlag)); } }
/// <summary> /// クライアントにファイルを送信する /// </summary> /// <param name="realfilename">ファイル名(フルパス)</param> /// <param name="filename">クライアントに通知するファイル名</param> /// <param name="mime">MIMEタイプ名(Content-type)</param> protected void SendFile(string realfilename, string filename, string mime) { if (String.IsNullOrEmpty(realfilename)) { throw new ArgumentNullException("Real file name is not specified."); } using (FileStream fs = FileUtil.BinaryReader(realfilename)) { if (fs == null) { throw new IOException(String.Format("Can't open {0} for reading", realfilename)); } SendFile(fs, filename, mime); } }
/// <summary> /// ファイルを読み取り用にオープンする /// </summary> protected Stream OpenFile(string path) { if (File.Exists(path)) { return(FileUtil.BinaryReader(path)); } if (!path.StartsWith(m_dir) || (m_contents == null)) { return(null); } path = path.Substring(m_dir.Length).Replace('\\', '/'); foreach (HttpBuiltinContent c in m_contents) { if (c.m_filename == path) { return(new MemoryStream(c.m_content, false)); } } return(null); }