問題タブ [programdata]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - プログラムデータからAppData\Local \ VirtualStore\ProgramDataへのファイルのリダイレクト
.net 3.5でC#を使用しています
プログラムデータをC:\ Program Data \ MyProgramName\fileName.xmlの下のファイルに保存しています。
アプリケーションを一度インストールして実行した後、アンインストールし(アンインストール中に「プログラムデータ」からすべてのファイルを削除します)、アプリケーションを再インストールして実行しました。
奇妙なことに、私のアプリケーションは、プログラムデータ内のファイルが存在するかのように起動しました。つまり、データファイルが削除されても、アプリ内に古いデータがありました。
実行時:
ファイルが存在しないことは確かにわかっていましたが、「true」になりました。
アプリケーションを管理者として実行した後、ファイルが存在しなかった場合、状況はさらに奇妙になりました。
調査の結果、「C:\ Program Data \ MyProgramName \ fileName.xml」を取得する代わりに、管理者権限なしでアプリケーションを実行すると、「C:\ Users \ userName \ AppData \ Local \ VirtualStore\ProgramData」が取得されることがわかりました。 \ MyProgramName \ fileName.xml "
そして確かに、以前のインストールから存在したファイルがありました(それが存在することを知らなかったので、私は明らかに削除しませんでした)。
したがって、明らかに、プログラムデータの下にファイルへの仮想パスがあります。
編集 :
仮想ストア内の古いファイルを削除した後、アプリケーションが突然正しいファイルを見つけることができることがわかりました。(プログラムデータの下のファイルには変更を加えませんでした。
私の質問は:
- なぜそれが起こるのですか。
- どうすればそれを防ぐことができますか
前もって感謝します
winapi - C:\ProgramData へのパスを取得する Win32 関数
私のアプリは、実行時にアプリケーションで編集できるいくつかのファイルをインストールする必要があります。インストール シールドはエイリアス [CommonAppDataFolder] を提供します。これは、Vista および Windows 7 では c:\programData に解決され、Windows XP でも機能します。同様のパスを返す win32 関数はありますか?
オペレーティング システムに応じて異なる関数を呼び出す必要があるのでしょうか。
c# - ファイルが仮想化されないようにする方法、つまりProgramDataフォルダーからAllUsersフォルダーにコピーされるのを防ぐ方法は?
アプリケーションデータをに保存しています
このデータがにコピーされないようにしたい
この機能を無効にするには、アプリケーションで何をする必要がありますか?
c# - Windows インストーラーの共通アプリケーション データ パス
検索したところ、実行時にアプリケーションによって使用されるアプリケーションのデータを含む「ProgramData」という名前の Windows パーティションにフォルダーがあります。このフォルダーは管理者権限を必要とせず、システム ユーザー間で共通であるため、ランタイム ファイルを配置するのに最適な場所です。C#.Net では、次のコードでこのフォルダー アドレスに到達します。
問題は、Visual Studio Setup Project で Windows インストーラー (msi ファイル) を作成しているときに、データを入れる適切なフォルダーが見つからないことです。このフォルダーをセットアップ プロジェクトに追加する方法を知りたいです。
よろしく。
.net - アプリがWindowsサービスによって保存されたファイルを書き換えることができません
問題は、私の.NET Windowsサービス(で実行されているNT AUTHORITY\SYSTEM
)が内のフォルダーにファイルを作成しProgramData
、WindowsアプリケーションがSystem.UnauthorizedAccessException
それを上書きしようとするとaを取得することです。現在ログインしているユーザーは管理者アカウントを持っていますが、アプリは昇格されません(そして私はそれを避けたいと思います)。
アプリケーションの後にサービスが開始された場合、ファイルはUIアプリによって作成され、正常に機能します。.NET WindowsサービスでWindowsアプリで上書きできるファイルを作成することはできますか?
c# - WPFアプリはファイル/データを「C:\ ProgramData」に書き込みますが、他のフォルダーへの書き込みに失敗します
ユーザーがフォルダパスを選択できるWPFアプリケーションを開発しました。WPFアプリケーションは、この選択されたパスにファイル/データを書き込みます。パスとして「C:\ ProgramData」を選択すると、ファイルが作成され、データが書き込まれます。ただし、パスが「C:\ ProgramData」以外の場合、ファイルは生成されますが、データがファイルに書き込まれず、アクセス許可の問題のようです。「C:\ ProgramData」と同じ選択したフォルダに同じ種類のアクセス許可を割り当てて、ファイルにデータを書き込めるようにする方法を誰かが見つけてくれるでしょうか。結論として、「ProgramData」には他のフォルダ用ではない追加の権限は何ですか?
注:ProgramDataフォルダーでのみ正しく機能します。
c# - すべてのユーザー (アプリケーションを使用) が読み取り/書き込みできるように、マシンごとのアプリケーション ファイル (xml) を格納するディレクトリ
CommonAppDataFolder を使用してマシンごとのファイルを保存する方法について人々が議論していた複数のフォーラムで、私は多くの議論を行ってきました。
XML
私のアプリケーションには、アプリケーションを実行しているすべてのユーザーがそのファイルを読み書きできるような共有の場所にファイルを保存する必要があるという要件があります。
CommonAppDataFolder
( C:\ProgramData
Windows 7 の場合) 管理者には読み取りアクセスを許可するが、標準ユーザーにはファイルへの書き込みを許可しないことを理解しています。
私が遭遇した解決策の 1 つは、アプリケーション フォルダーのアクセス許可を変更してCommonAppDataFolder
、すべてのユーザーに読み取り/書き込みを許可することです。
これは私の要件を達成するための最良の方法ですか、それともマイクロソフトが提案するより良い方法はありますか?
windows - WinPE 内の Windows 8 インストールから ProgramData を完全に削除できない
Windows がインストールされているシステム ドライブを取得し、ドライブからすべてを削除する (ファイル システムをそのまま維持する) WinPE で実行するスクリプトがあります。
Windows XP/Vista/7 のインストールを扱う場合、正常に機能します。attrib -S -A -H -I -R /S /D \
が実行され、すべてが削除されます。
ただし、Windows 8 では、「アクセスが拒否されました」というエラーが発生します。何らかの理由で、WinPE 内の SYSTEM ユーザーであっても、ディレクトリを編集できませんC:\ProgramData\Microsoft\Windows\LocationProvider
。attrib
属性を設定することも、削除することもできませんcd
。dir /a
ただ戻りますFile Not Found
。
を使用rmdir /S /Q
すると、「アクセスが拒否されました」というエラーが表示されます。
windows-7 - ProgramData と AppData の違いは何ですか?
プログラムのユーザー固有の構成データを保存する必要があります。Application Data/AppData (ユーザーのディレクトリ内) と ProgramData (システム ドライブのルート内) の両方が、適切な場所に配置されるようです。
プログラム データとアプリケーション データの違いは何ですか? どちらを使用すればよいですか?