問題タブ [ntfs]
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.
filesystems - NTFS ディスクに割り当てられたブロックを確認する方法
NTFS ディスク上のどのクラスターが割り当てられているかを判断する方法はありますか? デフラグ自体を開始する前に、デフラグ プログラムで表示される表示に沿って考えています。
MFT を解析できると思いますが、何十万ものファイルが存在する可能性のあるシステムでは、これに長い時間がかかる可能性があることに気づきました。
ありがとう
.net - Windows ファイル システムには、各ファイルに対して事前に計算されたハッシュがありますか?
ハッシュでファイルの複製を検索したい。パフォーマンス上の理由から、NTFS/FAT ファイル システムに各ファイルのハッシュ/チェックサムが保存されているかどうかを知りたいです。ある場合、ファイルを検索するためにそれらすべてを計算する必要はありません。
ある場合、.NET を使用してアクセスする方法は?
それが役立つ場合、それはJPEGファイルになります。チェックサムはありますか?
c# - Windows Server 2003 フォルダーの監査
Windows Server 2003 環境で特定のフォルダの内容を変更した Active Directory 認証済みユーザーをログに記録する方法はありますか?
.net - すべてのプロセスの開いているハンドルのセットを取得するにはどうすればよいですか
ファイルが任意のプロセス (呼び出し元を含む) によって開かれているかどうかを知りたい 既にいくつかの提案が投稿されていますが、それらはファイルを排他的に開こうとして例外をキャッチすることを中心に展開する傾向があります。
私の場合、これは絶対確実な方法であるとは証明されていません。特定の状況では、実行中のすべてのプロセスのファイル タイプの開いているすべてのハンドルの名前をスキャンすることで解決できると信じています。
winapi - NTFS 代替データ ストリームを開くときに Windows エラー ERROR_DISK_FULL (112) が発生する理由は何ですか?
私のアプリケーションは、数バイトのデータを別のデータ ストリームに書き込みます。これは、1 台のマシン (Windows Server 2003 SP2) を除くすべてのマシンで正常に機能します。ERROR_DISK_FULL
代わりに、 (ルート ディレクトリに) 別のデータ ストリームを作成しようとすると、CreateFile が返されます。この結果の理由はわかりません。なぜなら...
そのドライブには十分なスペースがあります。
ドライブは NTFS でフォーマットされています (GetVolumeInformation により)。
ドライブは代替データ ストリームをサポートします (GetVolumeInformation による)。
編集:理由が何であるかについてさらに情報を提供できます。エラーを表示しなかったテストシステムに多くのストリームを追加し、エラーが発生する可能性があるかどうか疑問に思いました。そうではありませんでした。代わりに、長いファイル名を持つ約 2000 のストリームの後、別のエラーが発生して持続しました: 1450 (ERROR_NO_SYSTEM_RESOURCES)。
編集: 使用されるファイル名の 1 つの例を次に示します。
編集: 当社の顧客は、このサーバーで Avira の企業向けウイルス対策ソフトウェアを使用しています。おそらくこれが理由です (代替データ ストリームはマルウェアによって悪用される可能性があります)。
c# - ファイルが EFS で暗号化されているかどうかを確認する方法
ファイルが EFS で暗号化されているかどうかを判断するためのライブラリ メソッドはどこかにありますか? FileInfoにEncrypt()
とDecrypt()
メソッドが表示されますが、ファイルの状態を照会する方法を探しています。
windows-7 - Vista /Windows7での一般的な世界で書き込み可能なアプリデータフォルダー
VistaおよびWindows7のUsersグループのメンバーが、昇格せずに書き込み権限をデフォルトで持っているフォルダーを見つけようとしています。
これは、すべてのユーザーが共有および書き込み可能である必要がある共通データ(データベースおよび定期的に更新されるドキュメントパック)の保存に使用されます。
Vistaではc:\ ProgramDataに解決されるCSIDL_COMMON_APPDATAをどこかに持っていたと思いましたが、テストでは、ユーザーグループのメンバーは、マシンがドメインに参加している場合にのみ読み取り/実行権限を持っていることがわかりました。これはドキュメントと矛盾しているようです。
CSIDL _ COMMON _ APPDATA(FOLDERID_ProgramData)バージョン5.0。
すべてのユーザーのアプリケーションデータを含むファイルシステムディレクトリ。一般的なパスは、C:\ Documents and Settings \ All Users \ApplicationDataです。このフォルダーは、ユーザー固有ではないアプリケーションデータに使用されます。たとえば、アプリケーションは、スペルチェック辞書、クリップアートのデータベース、またはログファイルをCSIDL_COMMON_APPDATAフォルダに保存できます。この情報はローミングせず、コンピューターを使用しているすべての人が利用できます。
http://msdn.microsoft.com/en-us/library/bb762494(VS.85).aspx
ドキュメントフォルダ(CSIDL_COMMON_DOCUMENTSなど)を使用したくないのは、これらのファイルがユーザーに特に表示されないようにするためです。
興味深いことに、CSIDL値をパスに解決するために使用するコードを次に示します。
助言がありますか?
編集:System.Environment.SpecialFolderを使用しない理由を尋ねました。その列挙で定義されていないフォルダー(COMMON_DOCUMENTS-0x002e)を使用します。
編集:私は答えられない質問をしたと思います。
http://blogs.msdn.com/oldnewthing/archive/2004/11/22/267890.aspx
これは、これが意図的に不可能にされていることを意味しているようです。その後、昇格されたCLIアプリケーションを使用してフォルダーのACLを変更することに戻りました。汚れていますが、私たちの場合は必要です。
c# - C# で NTFS ディスク クォータを照会するにはどうすればよいですか?
特定のリモート マシン上のすべてのユーザーについて、それらのユーザーのディスク クォータと実際のディスク使用量を見つけられる必要があります。C# アプリケーションでこのレポートを実行できるようにする必要があります。(技術的には、私が既に構築したアプリの DLL プラグインですが、ここでは関係ありません。)
- リモート マシンは同じネットワーク上にありませんが、アプリを実行するアプリケーションは資格情報を提供できます。
- WMI はまったく問題ありません。私は(3時間以上探した後)必要な正確な呪文を見つけることができません. (私も WMI の専門家ではありません。WMI ソリューションを投稿する場合は、必要な C#/.NET
System.Management.*
オブジェクトでフレーム化してください。)
c# - NTFS でのファイルの検索
約 200 万から 300 万の XML ファイルを含むかなり大きなディスク アレイがあります。ディスクは NTFS でフォーマットされており、ワイルドカードを使用してファイル システムを検索したいと考えています。したがって、 * SomePartOfTheFilename * のようなものが典型的な検索クエリになります。
.Net を使用していますが、DirectoryInfo の使用が遅いように見えます。
ループと再帰の使用も非常に遅くなります。
NTFS インデックスを直接検索するために使用できる下位レベルの API 呼び出しはありますか?
コマンドラインから dir * SomePartOfTheFilename * /s を使用すると、ほぼ瞬時に実行できます。活用できるものはありますか?
stream - NTFS 代替データ ストリーム
今日、NTFS システムがサポートするこの奇妙な魔法を見てきました。各ファイルは複数のデータ ストリームを持つことができます。基本的に、a.txt
サイズが 0b のファイルを持つことができますが、そのファイルの別のデータ ストリームに任意の数のバイトが隠されている可能性があります。これは厳密に NTFS 関連の魔法であり、これらのストリームを使用する気高い理由は見当たりません。streams
Sysinternalsのユーティリティを使用して、NTFS ストリームを探すことができます。これは、基本的にこれらの厄介なファイルのすべてにthumbs.db
余分なデータストリームが付属していることを示しています.
さて、Windows NT4 システムでこの魔法のような動作が見られ、ファイルへのストリームの追加、コピー、削除 (前述のユーティリティの助けを借りて) が行われました。filename:streamname
構文を使用すると、既存のストリームを検出できますが、その内容を表示できず、新しいストリームを作成できません。
次のエラーが表示されます。
ファイル名、ディレクトリ名、またはボリューム ラベルの構文が正しくありません。
例: ストリーム ユーティリティからの出力:
代替データ ストリームの内容を表示できないのはなぜですか?
「 NTFS 代替データ ストリームの使用方法」に関する Microsoft のドキュメントを見ると、これらのストリームは将来サポートされなくなると記載されていますが、これが私のオペレーティング システムに当てはまることがわかります。誰でもこれに光を当てることができますか?