Programmation » info partition en .net
Catégorie:  
   
info partition en .net
Publié le 24/06/2009 @ 14:44:26,
Par Altar
Yop,

J'essaye de récupérer les informations (taille, espace libre, ...) d'une partition ntfs sur un HDD en .net.

Cette partition est montée dans un sous-répertoire d'une autre partition ntfs (mounted volume) et la classe DriveInfo me retourne les informations de la racine.

Qqun a une idée ? Je peux faire une interop s'il faut utiliser du code natif.

Merchi bien :ocube:
   
info partition en .net
Publié le 25/06/2009 @ 09:29:55,
Par Altar
Vous ne comprennez pas ma question ou vous ne connaissez pas la réponse ? :ocube:

Ce silence m'intrigue :ocube:
   
info partition en .net
Publié le 25/06/2009 @ 09:53:50,
Par Jean-Christophe
J'ai compris la question, mais je ne fait pas de .NET :spamafote:
   
info partition en .net
Publié le 25/06/2009 @ 10:15:44,
Par blietaer
Idem.
Remplace tes mots par ext3, linux et C/C++ stp.
Et au besoin s'arrêter.
   
info partition en .net
Publié le 25/06/2009 @ 11:36:27,
Par Altar
bli > oui je vais expliquer à mon client qu'il doit jetter ses centaines de serveurs 2k8 pour passer à linux, virer ses admin sys windows, déstabiliser sa prod pendant plusieurs mois, tout ça pour gagner 4h de dev sur un soft mineur :ocube:
   
info partition en .net
Publié le 25/06/2009 @ 11:48:31,
Par kortenberg
bli > oui je vais expliquer à mon client qu'il doit jetter ses centaines de serveurs 2k8 pour passer à linux, virer ses admin sys windows, déstabiliser sa prod pendant plusieurs mois, tout ça pour gagner 4h de dev sur un soft mineur :ocube:
Voilà! c'est ça!

Je connais le .net mais pour du dev web.
Je ne savais même pas qu'on pouvait monter un drv dans un sous-répertoire.
Je n'ai pas le temps de faire joujou.

Pour toutes ces raisons, je ne peux pas te répondre utilement.
   
info partition en .net
Publié le 25/06/2009 @ 11:53:02,
Par philfr

Je ne savais même pas qu'on pouvait monter un drv dans un sous-répertoire.


Sans doute que .net ne le savait pas non plus, et donc DriveInfo est incapable de savoir ce qu'on lui veut.
Tu n'as plus qu'à attribuer un nom de drive à ta partition. "F:" peut-être ? :grin:
   
info partition en .net
Publié le 25/06/2009 @ 11:59:47,
Par Dr_Dan
bli > oui je vais expliquer à mon client qu'il doit jetter ses centaines de serveurs 2k8 pour passer à linux, virer ses admin sys windows, déstabiliser sa prod pendant plusieurs mois, tout ça pour gagner 4h de dev sur un soft mineur :ocube:


Bah non, il va te jeter et engager quelqu'un qui connais la réponse.. :ddr555:

:neowen:
Se tromper est humain ; Vraiment foutre la merde necessite le mot de passe de root. :petrus:
   
info partition en .net
Publié le 25/06/2009 @ 12:06:37,
Par rfr
Le début de ta quête se trouve ici: http://msdn.microsoft.com/en-us/library/aa364994(VS.85).aspx

Après ça, tu auras le nom du volume et tu pourras utiliser le reste de l'API Win32.
To die is a time consuming activity, it often takes a lifetime (but some are faster than others ... though)
   
info partition en .net
Publié le 25/06/2009 @ 12:11:47,
Par blietaer
(pardon pour la petite blague, je sais comme l'humour nerd est penible quand on attend une reponse constructive)
Et au besoin s'arrêter.
   
info partition en .net
Publié le 25/06/2009 @ 12:17:25,
Par Altar


Sans doute que .net ne le savait pas non plus, et donc DriveInfo est incapable de savoir ce qu'on lui veut.
Tu n'as plus qu'à attribuer un nom de drive à ta partition. "F:" peut-être ? :grin:


Pourtant c'est dans les specs ntfs depuis windows xp (soit 2001).

C'est ce qui est fait pour le moment mais la machine à une centaine de drives externes en rotation et ça devient le bordel à gérer xD

En plus, la machine devrait avoir plus de 24 drives branchés simultanément sous peu xD

edit : j'ai trouvé une solution en passant par WMI :ocube:
   
info partition en .net
Publié le 25/06/2009 @ 12:27:19,
Par Altar
rfr > encore mieux \o/
mille merci :prosterne:
   
info partition en .net
Publié le 25/06/2009 @ 13:03:55,
Par philfr
En plus, la machine devrait avoir plus de 24 drives branchés simultanément sous peu xD


C'était la raison de mon clin d'oeil à cette aberration d'un autre temps (CP/M...)
   
info partition en .net
Publié le 25/06/2009 @ 15:59:39,
Par Altar
Ca marche :smile: Pour récupérer la taille & l'espace libre un petit exemple :

[DllImport("kernel32.dll")]
static extern bool GetVolumeNameForVolumeMountPoint(string lpszVolumeMountPoint, [Out] StringBuilder lpszVolumeName, uint cchBufferLength);

[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool GetDiskFreeSpaceEx(string lpDirectoryName, out ulong lpFreeBytesAvailable, out ulong lpTotalNumberOfBytes, out ulong lpTotalNumberOfFreeBytes);

StringBuilder sb = new StringBuilder(200);
GetVolumeNameForVolumeMountPoint("c:\\", sb, (uint)sb.Capacity);

ulong FreeBytesAvailable, TotalNumberOfBytes, TotalNumberOfFreeBytes;
GetDiskFreeSpaceEx(sb.ToString(), out FreeBytesAvailable, out TotalNumberOfBytes, out TotalNumberOfFreeBytes);

Dernière édition: 25/06/2009 @ 16:11:03
   
info partition en .net
Publié le 25/06/2009 @ 16:01:53,
Par rfr
rfr > encore mieux \o/
mille merci :prosterne:


De rien, 30 secondes de google :banzai:
To die is a time consuming activity, it often takes a lifetime (but some are faster than others ... though)
   
info partition en .net
Publié le 25/06/2009 @ 20:22:25,
Par antp


Pourtant c'est dans les specs ntfs depuis windows xp (soit 2001).


Ça marchait déjà en Windows 2000 il me semble
mes programmes ·· les voitures dans les films ·· champion des excuses bidons
Répondre - Catégorie:  
Informaticien.be - © 2002-2024 AkretioSPRL  - Generated via Kelare
The Akretio Network: Akretio - Freedelity - KelCommerce - Votre publicité sur informaticien.be ?