PDA

View Full Version : چطور می تونم Volume یک درایو رو تو سی شارپ پیدا کنم (همون سریال درایو)



takfanar
سه شنبه 17 دی 1392, 22:18 عصر
چطور می تونم Volume یک درایو رو تو سی شار پیدا کنم (همون سریال درایو) سریال هارد رو نمیخام می دونم با فرمت تغییر می کنه ولی لازم دارم

esafb52
سه شنبه 17 دی 1392, 23:56 عصر
بفرما دوست عزیز
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace WindowsApplication1
{
public partial class Form1 : Form
{

[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
static extern bool GetVolumeInformation(string Volume,
StringBuilder VolumeName, uint VolumeNameSize,
out uint SerialNumber, out uint SerialNumberLength, out uint flags,
StringBuilder fs, uint fs_size);
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{


}

private void button1_Click(object sender, EventArgs e)
{

uint serialNum, serialNumLength, flags;
StringBuilder volumename = new StringBuilder(256);
StringBuilder fstype = new StringBuilder(256);
bool ok = false;
Cursor.Current = Cursors.WaitCursor;
foreach (string drives in Environment.GetLogicalDrives())
{
ok = GetVolumeInformation(drives, volumename, (uint)volumename.Capacity - 1, out serialNum,
out serialNumLength, out flags, fstype, (uint)fstype.Capacity - 1);
if (ok)
{
lblVolume.Text = lblVolume.Text + "\n Volume Information of " + drives + "\n";
lblVolume.Text = lblVolume.Text + "\nSerialNumber of is..... " + serialNum.ToString() + " \n";
if (volumename != null)
{
lblVolume.Text = lblVolume.Text + "VolumeName is..... " + volumename.ToString() + " \n";
}
if (fstype != null)
{
lblVolume.Text = lblVolume.Text + "FileType is..... " + fstype.ToString() + " \n";
}
}
ok = false;
}
Cursor.Current = Cursors.Default;
}
}
}

takfanar
چهارشنبه 18 دی 1392, 00:10 صبح
ممنون ولی این کد درست جواب نمیده برنامه سمت راست با ویبی که سریال درست رو بر می گردونه ولی سمت چپی کد شماست که سریال نا درست!115032

takfanar
چهارشنبه 18 دی 1392, 00:17 صبح
فقط سریال اولین درایو رو اشتباه حساب می کنه

esafb52
چهارشنبه 18 دی 1392, 00:20 صبح
http://74.125.28.99/#q=how%20to%20get%20volume%20drive%20in%20c%23.net

takfanar
چهارشنبه 18 دی 1392, 09:09 صبح
اینا رو دنبال کردم همشون اولین درایو رو اشتباه بدست میارن اگه به عکس دوم دقت کنید خاستم ببینم کسی میتونه یه کد فیکس شده بزاره

takfanar
چهارشنبه 25 دی 1392, 21:14 عصر
کسی چیزی نمیدونه در در باره تین کد که چرا پارتیشن اول رو اشتباه حساب می کنه

nabi-j
چهارشنبه 25 دی 1392, 23:16 عصر
دوستان روی سیستم من که درست جواب میده
تصویر اول System Information خود ویندوز
تصویر دوم با همین کد

115438

115439