2017-09-25 17 views
0

GetDiskFreeSpace API:MSDNの空き領域を返すときにクォータを考慮していますか?GetDiskFreeSpace APIはフォルダクォータを考慮しますか?

たとえば、E:\ドライブに50GBの空き容量があり、10Gbのハード制限があるフォルダがある場合、このAPIを使用してフォルダの空き容量を取得すると、どれくらい返されますか? 10GBまたは50GB?

答えて

1

はい、GetDiskFreeSpaceGetDiskFreeSpaceExは両方ともフォルダクォータを考慮します。

NB:GetDiskFreeSpaceのドキュメントによると、ルート以外のディレクトリのクエリはサポートされていません。私はドキュメントがちょうど古くなっていると思われますが、予防措置として、このような制限がないGetDiskFreeSpaceExを使用する方が安全です。

GetDiskFreeSpaceEx関数は、ユーザーが使用できる空きバイト数(ユーザークォータとフォルダクォータを考慮して)と空きバイト数の両方を返します。ユーザーが空きバイト数を使用できるようにするには、lpFreeBytesAvailableを使用し、空きバイト数の合計(クォータを無視する)を使用する場合は、lpTotalNumberOfFreeBytesを使用します。

+0

「GetDiskFreeSpaceEx」は、ボリュームと共有(ドライブレター、マウントされたボリューム、UNCルート)でのみ動作し、フルパスが指定されている場合はそのルートを探します。 – Anders

+0

@アンダー、私は自分の答え(Windows 7と2008 R2)を投稿する前にそれをテストしたが、確かにフォルダクォータを考慮に入れている。そのためには 'GetDiskFreeSpace'もそうです。私が正しく覚えていれば、Windows XPでは動作しませんでした。私はVista/2008について完全にはわからない。 (あなたの答えのリンクはこれがVistaで修正されたと言いますが) –

+0

非Exバージョンはおそらくルーツに限定されています.Windows 95上で唯一のものです.2GBに制限されているので、もう役に立ちません。それが根だけを受け入れるならば、フォルダの非Exバージョンをどのようにテストしましたか? – Anders

関連する問題