ファイルを保存するための容量としてパスを確認するには、.NETで最も良い方法は何ですか。私は、ソースがファイルを2回目にダウンロードすることを許可しないので、ダウンロードする前にファイルのための空きがあることを確認する必要があります。私はSystem.IO.DriveInfoを見てきましたが、これはUNCパスでは機能しません。.Netを使用してファイルシステム容量をチェックする最良の方法は何ですか?
4
A
答えて
5
ここには、W3Cを使用して任意のドライブ(ローカルまたはネットワーク/ UNC)の空き領域を取得する方法を示すthis pageの短い機能があります。
private static ulong GetFreeDiskSpaceInBytes(string drive)
{
ManagementObject disk =
new ManagementObject("win32_logicaldisk.deviceid=\"" + drive + ":\"");
disk.Get();
return (ulong)disk["FreeSpace"];
}
あなたはWin32 APIのソリューションをwnat場合this MSDN help pageにより示唆されるように、あなたは、GetDiskFreeSpaceEx
機能を使用することができます。それも、ローカルドライブ名とネットワークドライブ名の両方をサポートしているようです。
Private Declare Function GetDiskFreeSpaceEx Lib "kernel32" _
Alias "GetDiskFreeSpaceExA" (ByVal lpDirectoryName As String, _
lpFreeBytesAvailableToCaller As Currency, _
lpTotalNumberOfBytes As Currency, _
lpTotalNumberOfFreeBytes As Currency) As Long
Private Sub Form_Click()
Dim Status As Long
Dim TotalBytes As Currency
Dim FreeBytes As Currency
Dim BytesAvailableToCaller As Currency
Status = GetDiskFreeSpaceEx(Text1.Text, BytesAvailableToCaller, _
TotalBytes, FreeBytes)
If Status <> 0 Then
MsgBox Format(TotalBytes * 10000, "#,##0"), , "Total Bytes"
MsgBox Format(FreeBytes * 10000, "#,##0"), , "Free Bytes"
MsgBox Format(BytesAvailableToCaller * 10000, "#,##0"), , _
"Bytes Available To Caller"
End If
End Sub
これをC#に変換できない場合は、教えてください。
ここではWMIソリューションを推奨する必要があります。これは完全に管理されていますが(少数の行を除いて)、トリックを行う必要があります。
0
私は、WMIを使用して必要な回答を得ることができると確信しています。通常は、開始するのに適しています。
0
ディスクにファイルを保存できるかどうかを確認する唯一の方法は、ディスク上に実際にそのサイズのファイルを作成することです。
十分な空きがあるとディスク情報が示す場合でも、最適化のために空きディスク領域の100%を使用することはほとんどありません。
+0
私は、余分なカバレッジを得るために必要なスペースの2〜3倍が存在することを確認することを考えていました。しかし、ノートのおかげで –
関連する問題
- 1. コンテナに使用できるDockerファイルシステムの容量を制限する方法
- 2. 大量のSQLデータを.netでロードし、CSVファイルを生成する最も良い方法は何ですか?
- 3. fopen()を使用する最良の方法は何ですか
- 4. IndexedDBを使用する最良の方法は何ですか?
- 5. MVPアーキテクチャを使用して実行時に権限をチェックする最良の方法は何ですか?
- 6. ライセンスを使用してカスタム.NETコンポーネントを保護する最良の方法は何ですか?
- 7. C#/ .NETを使用してファイル内のテキストを置換する最も良い方法は何ですか?
- 8. ウェブアプリケーションのユーザーが使用しているディスク容量を測定する最も良い方法は?
- 9. Google App EngineでJavaを使用すると、大容量の静的データを保存してアクセスする最良の方法は何ですか?
- 10. アプリからiOSファイルシステムにアクセスする最も良い方法は何ですか?
- 11. Rubyとmongodbを使用した軽量分散システムを開発する最良の方法は何ですか?
- 12. +/-許容誤差%を持つクロックの周波数をチェックする最良の方法は何ですか?
- 13. 大量の画像をカタログする最良の方法は何ですか?
- 14. 大量のメモリを使用せずに大容量のファイルを表示する最も良い方法は何ですか?
- 15. .NETアプリケーションの大容量メモリブロック。それらを処理する最適/推奨/スケーラブルな方法は何ですか?
- 16. Trelloを使用して容量を管理する方法は?
- 17. Immutable.jsオブジェクトのディープ値をチェックする最良の方法は何ですか?
- 18. C#関数のメモリ使用量を測定する最も良い方法は何ですか?
- 19. .NETでこれを実装する最も良い方法は何ですか?
- 20. C#.NETでゲームを作る最良の方法は何ですか?
- 21. Backbone.js - チェックボックスをチェックする最も良い方法は何ですか
- 22. C++からnetlinkを使用する最良の方法は何ですか?
- 23. .NET(GDI +を使用)で現実的なハイライターを作成する最も良い方法は何ですか?
- 24. WPFを使用してスクロールエリアに何千ものコントロールを作成する最良の方法は何ですか?
- 25. Asp.netでJQueryを使用する最良の方法は何ですか
- 26. HerokuでMySQLを使用する最良の方法は何ですか
- 27. C++でPayPalアダプティブペイメントAPIを使用する最良の方法は何ですか?
- 28. MVC 3でNinjectを使用する最良の方法は何ですか?
- 29. Javaスイングで日付を使用する最良の方法は何ですか
- 30. エクスプレスプロジェクトでTinyMCEを使用する最良の方法は何ですか?
WMIではなくAPI呼び出しはどうですか? –
@Matthew:なぜWMIよりもAPIを好むのですか?非常に短い解決策があり、WMIを使用することで、完全に管理されています(System.Management名前空間を使用)。 – Noldorin
私は単純なPInvokeがWMIでプレイするよりも優れていると思います。しかし、私はWMIが機能するかもしれないと思います。 –