Créer un lecteur

ultima_93 Messages postés 46 Date d'inscription mercredi 19 mai 2004 Statut Membre Dernière intervention 26 juillet 2007 - 9 juin 2005 à 20:11
ultima_93 Messages postés 46 Date d'inscription mercredi 19 mai 2004 Statut Membre Dernière intervention 26 juillet 2007 - 5 sept. 2005 à 14:34
Bonjour,
je voudrais savoir si il est possible de créer un type de lecteur en C#, en donnant une lettre et en lui donnant une taille.
Ou alors est-ce que la msdn pourrait me renseigner la dessus.
Si quelq'un aurait un lien ou un exemple??

2 réponses

cs_Pierrrot Messages postés 54 Date d'inscription samedi 30 avril 2005 Statut Membre Dernière intervention 6 mai 2007
3 sept. 2005 à 11:17
Bonjour,
Tu parle de la création de Partition ,

Cela est impossible.
---------------------------------
Pierre
http://wikims.free.fr/blog/
0
ultima_93 Messages postés 46 Date d'inscription mercredi 19 mai 2004 Statut Membre Dernière intervention 26 juillet 2007
5 sept. 2005 à 14:34
En fait j'ai vu ça alors j'ai juste voulu créer des disques virtuels associé à un repertoire.
J'utilise le code suivant

#region Win32

private
const
int DDD_RAW_TARGET_PATH = 0x00000001;

private
const
int DDD_REMOVE_DEFINITION = 0x00000002;

private
const
int DDD_EXACT_MATCH_ON_REMOVE = 0x00000004;

[DllImport("kernel32.dll", CharSet=CharSet.Auto)]

private
static
extern
bool DefineDosDevice(
int dwFlags,
string lpDeviceName,
string lpTargetPath );

private
const
int DRIVE_UNKNOWN = 0;

private
const
int DRIVE_NO_ROOT_DIR = 1;

private
const
int DRIVE_FIXED = 3;

[DllImport("kernel32.dll", CharSet=CharSet.Auto)]

private
static
extern
int GetDriveType(
string lpRootPathName);

#endregion


#region Create





/// <summary>



/// Création d'un lecteur virtuel non persistant.



/// </summary>
/// Lettre à attribuer au lecteur.

/// Chemin d'accès au répertoire.

/// <returns>Succès ou échec de l'opération</returns>
public
static
bool Create(
char driveChar,
string path)
{

return DDDOperation(driveChar, path,
true);
}

#endregion


#region Delete

/// <summary>
/// Suppression d'un lecteur virtuel non persistant.
/// </summary>
/// Lettre attribuée au lecteur.

/// Chemin d'accès au répertoire.

/// <returns>Succès ou échec de l'opération</returns>
public
static
bool Delete(
char driveChar,
string path)
{

return DDDOperation(driveChar, path,
false);
}

#endregion
#endregion


#region Méthodes privées

#region DDDOperation

private
static
bool DDDOperation(
char driveChar,
string path,
bool create)
{

//répertoire valide ?
if (!Directory.Exists(path))
return
false;

string drive =
string.Format("{0}:", driveChar.ToString().ToUpper());

//le volume existe ?
int type = GetDriveType(
string.Format("{0}{1}", drive, Path.DirectorySeparatorChar));

//Nota : un lecteur virtuel est de type DRIVE_FIXED une fois créé.
if ((create && type != DRIVE_UNKNOWN && type != DRIVE_NO_ROOT_DIR) ||(!create && type !=DRIVE_FIXED))

return
false;

int flags = DDD_RAW_TARGET_PATH;

if (!create) flags |= (DDD_REMOVE_DEFINITION | DDD_EXACT_MATCH_ON_REMOVE);

return DefineDosDevice(flags,drive,
string.Format("{0}??{0}{1}", Path.DirectorySeparatorChar, path));
}

#endregion

#endregion
0
Rejoignez-nous