C#-Vista-減圧ている仮想化された利用の場合CommonApplicationData
-
06-09-2019 - |
質問
とUACします。これを生じさせるものではありませんが問題とされるというものです。
私c#アプリのバックアップ/復元機能を利用sql server2005年。
コードを取得しbackupPathの機能があり、それぞれのバックアップと復元の名前のすべての目的のリンクを表示しております。dat
をバックアップパス
string path = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
path = Path.Combine(path, "CompName");
if(!Directory.Exists(path))
Directory.CreateDirectory(path);
path = Path.Combine(path, "AppName");
if(!Directory.Exists(path))
Directory.CreateDirectory(path);
return path;
バックアップのdbをリンクを表示しております。datに**C:\ProgramData\CompName\AppName**でよいのではないかと思いzippingこの場所からは、対象ディレクトリのユーザーの選択です。
に復元できなくなく事がままあるのはアーカイブディレクトリまたはファイルでdecompressesで**C:\Users\UserName\AppData\Local\VirtualStore\ProgramData\CompName\AppName**
私は知る必要があるのはなぜ私が解凍されたファイルは、仮想店舗で復元できるdbから何を理解していプログラミングのためのビスタのsqlサーバは/なアクセスできる仮想店。
編集:失敗を提供する減圧ならないと思いこが問題なのがお久しぶりです、どらすこです。
private void DecompressArchiveFile(string compressedFile, string backupPath)
{
GZipStream gzip = new GZipStream(new FileStream(compressedFile, FileMode.Open, FileAccess.Read, FileShare.None), CompressionMode.Decompress, false);
FileStream fs = new FileStream(backupPath, FileMode.Create, FileAccess.Write, FileShare.None);
byte[] buffer = new byte[10000];
int count = -1;
while (count != 0)
{
count = gzip.Read(buffer, 0, 10000);
fs.Write(buffer, 0, count);
}
gzip.Close();
fs.Close();
}
おかげさせて助 -TK
解決
この関連スタックオーバーフロー 質問, わから リンク このことから 答え:
FOLDERID_ProgramData/ システム。環境です。SpecialFolder.CommonApplicationData
のユーザーの思いを閲覧 この新たなクラウドシステムの設定を変更 こちらに影響を与えると考えられる毎にユーザーの 機です。デフォルトの場所は %systemdrive%\ProgramDataである 隠しフォルダ、インスタレーション" Windows Vista. してください作成 おディレクトリの設定を忘れない 必要な設置。
な目的とする場合はユーザーの書くことができることフォルダにいて適切なアクセスがインストーラーです。
い書き込みアクセスにフォルダるとは思えないしょうと問題のvirutalisation.しかし、まだマーク申請、特権レベルで追うようにすることのできるマニフェスト(詳細):
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" />
</requestedPrivileges>
</security>
これを無効に仮想います。できるかどうかわれているvirtualisedを加えた"仮想化"列タスクマネージャー下の表示-選択カラム...
なお、ディレクトリです。CreateDirectory()を親ディレクトリが自動的に
他のヒント
私はあなたがVistaの仮想化機能を打っていると思います - 。彼らが書くことは許可されていませんVista上で動作していないから、古いひどく行儀のアプリを保つために意味される%はProgramData%
あなたのアプリは、%はProgramData%をから読み、それに書き込むことはできません。あなたが本当に%はProgramData%の下に書きたい場合は、上昇を実行する(またはあなたが書くようにするサブパスにDACLを変更)する必要があります。
http://technet.microsoft.com/en-us/を参照してください。詳細は、雑誌/ cc160980.aspx に(データのリダイレクト)。