请问怎么获得无系统未格式化空白存储卡的容量等信息?

问题描述

请问怎么获得无系统的存储卡的容量等信息?存储卡无系统引导无FAT表之类的,没有格式化,打个比方说所有扇区的所有字节值为零吧。计算机我的电脑里显示为可移动磁盘,但是是没有格式化的。那么怎样用c#获得存储卡的容量大小,扇区大小,扇区总数等信息?非得直接调用API么?当然能提供详细的调用API例子也行

解决方案

解决方案二:
.net这些底层的东西无法获取到的。。。。
解决方案三:
.Net对此有封装。试一试。usingSystem.Management;//需添加引用classProgram{staticreadonlyString[]arrManagementItem=newString[]{"Availability","BytesPerSector","Capabilities","CapabilityDescriptions","Caption","CompressionMethod","ConfigManagerErrorCode","ConfigManagerUserConfig","CreationClassName","DefaultBlockSize","Description","DeviceID","ErrorCleared","ErrorDescription","ErrorMethodology",//"FirmwareRevision","Index","InstallDate","InterfaceType","LastErrorCode","Manufacturer","MaxBlockSize","MaxMediaSize","MediaLoaded","MediaType","MinBlockSize","Model","Name","NeedsCleaning","NumberOfMediaSupported","Partitions","PNPDeviceID","PowerManagementCapabilities","PowerManagementSupported","SCSIBus","SCSILogicalUnit","SCSIPort","SCSITargetId","SectorsPerTrack",//"SerialNumber","Signature","Size","Status","StatusInfo","SystemCreationClassName","SystemName","TotalCylinders","TotalHeads","TotalSectors","TotalTracks","TracksPerCylinder",};staticvoidMain(string[]args){ManagementClassmc=newManagementClass("Win32_DiskDrive");foreach(ManagementObjectmoinmc.GetInstances()){foreach(StringmiinarrManagementItem){Console.WriteLine("{0}:{1}",mi,mo[mi]);}}Console.ReadKey();}}

参考:http://msdn.microsoft.com/en-us/library/windows/desktop/aa394132(v=vs.85).aspx
解决方案四:
楼上这个我已经试过的,不行,只能取得格式化过的信息,否则连容量都取不到好像
解决方案五:
自己顶一顶
解决方案六:
试下[DllImport("kernel32.dll")]staticexternIntPtrCreateFile(stringlpFileName,uintdwDesiredAccess,uintdwShareMode,IntPtrlpSecurityAttributes,uintdwCreationDisposition,uintdwFlagsAndAttributes,IntPtrhTemplateFile);[DllImport("kernel32.dll")]staticexternboolDeviceIoControl(IntPtrhDevice,intioControlCode,IntPtrpInBuf,intinBufSize,outlongdiskSize,intoutBufSize,outintpBytesReturned,IntPtrpOverlapped);staticvoidMain(string[]args){longdiskSize=0;intreturnedBytes=0;//\.PhysicalDrive0改成USB设备名IntPtrhandle=CreateFile(@"\.PhysicalDrive0",0x80000000,3,IntPtr.Zero,3,0,IntPtr.Zero);DeviceIoControl(handle,0x0007405c,IntPtr.Zero,0,outdiskSize,8,outreturnedBytes,IntPtr.Zero);Console.WriteLine(diskSize);}

解决方案七:
这个貌似很难获取到吧。。。。如果能,一同等
解决方案八:

解决方案九:
引用6楼bkq421511585的回复:

这个貌似很难获取到吧。。。。如果能,一同等

解决方案十:
引用7楼chinajiyong的回复:

用C#访问硬盘物理扇区和逻辑扇区的方法,API实现C#读写分区(按扇区)

第一个我早就试过了,对于没有格式化的SD或者TF卡可以读写,但是对于格式化过后的,从零地址开始写,好像并没有写在物理的零地址开始处,不过我还没有反复试谢谢楼上几位,我有时间再看看试试希望更多答案谢谢
解决方案十一:
引用9楼wangfuchong的回复:

引用7楼chinajiyong的回复:用C#访问硬盘物理扇区和逻辑扇区的方法,API实现C#读写分区(按扇区)第一个我早就试过了,对于没有格式化的SD或者TF卡可以读写,但是对于格式化过后的,从零地址开始写,好像并没有写在物理的零地址开始处,不过我还没有反复试谢谢楼上几位,我有时间再看看试试希望更多答案谢谢

我可能是将物理磁盘号和逻辑磁盘号搞混了,可是怎样取得物理磁盘序号呢?
解决方案十二:
引用9楼wangfuchong的回复:

引用7楼chinajiyong的回复:用C#访问硬盘物理扇区和逻辑扇区的方法,API实现C#读写分区(按扇区)第一个我早就试过了,对于没有格式化的SD或者TF卡可以读写,但是对于格式化过后的,从零地址开始写,好像并没有写在物理的零地址开始处,不过我还没有反复试谢谢楼上几位,我有时间再看看试试希望更多答案谢谢

我可能是将物理磁盘号和逻辑磁盘号搞混了,可是怎样取得物理磁盘序号呢?
解决方案十三:
引用11楼wangfuchong的回复:

引用9楼wangfuchong的回复:引用7楼chinajiyong的回复:用C#访问硬盘物理扇区和逻辑扇区的方法,API实现C#读写分区(按扇区)第一个我早就试过了,对于没有格式化的SD或者TF卡可以读写,但是对于格式化过后的,从零地址开始写,好像并没有写在物理的零地址开始处,不过我还没有反复试谢谢楼上几位,我有时间再看看试试希望更……

//usingsystem.runtime.interopservices;//usingsystem.management;//获取磁盘序列号publicstringgetharddiskid2(){  try  {  System.Management.ManagementObjectSearchercmicWmi=new  ManagementObjectSearcher("SELECT*FROMWin32_DiskDrive");  System.UInt32tmpUint32=0;  foreach(ManagementObjectcmicWmiObjincmicWmi.Get())  {  tmpUint32=Convert.ToUInt32(cmicWmiObj["signature"].ToString());  }  this.textBox1.Text=tmpUint32.ToString();  this.gProgressBar1.Value++;  }  catch(Exceptionex1)  {  thrownewException(ex1.ToString());  }}

参考
解决方案十四:
楼上,谢谢回答还没来得及仔细看全部不过我说的是不是怎样取得所有的物理磁盘号,而是怎样根据用户看到选择的逻辑盘符获得物理盘号罗列物理盘号我早就取得过,关键是怎么知道哪个物理盘号是对应需要操作的移动存储设备?
解决方案十五:
这个真心不会了。给楼主顶一下,顺便等答案。很高端的样子。
解决方案:
引用13楼wangfuchong的回复:

楼上,谢谢回答还没来得及仔细看全部不过我说的是不是怎样取得所有的物理磁盘号,而是怎样根据用户看到选择的逻辑盘符获得物理盘号罗列物理盘号我早就取得过,关键是怎么知道哪个物理盘号是对应需要操作的移动存储设备?

这个真心不会了,靠你自己探索了,探索出来分享一下,谢谢
解决方案:
关注一下,顺便等等问题答案

时间: 2025-01-30 15:51:28

请问怎么获得无系统未格式化空白存储卡的容量等信息?的相关文章

请问连续存储文件的方法对于一个格式化好的空白存储卡

问题描述 对于一个格式化好的空白存储卡,FAT16或者FAT32格式,有没有简单的连续存储几个文件的方法?就是要求这些文件是连续簇存储的.谢谢有复杂的现成的源码也行,自己写直接操作扇区的程序有点麻烦呀 解决方案 解决方案二:要看你想干什么?解决方案三:那就不要使用文件系统,使用raw方式存储.解决方案四:引用2楼devmiao的回复: 那就不要使用文件系统,使用raw方式存储. 嘿嘿,就是既想要文件系统,又想要连续存储

移动硬盘提示“磁盘未格式化”错误的解决办法

有时候我们会碰到某个分区用着用着就打不开了,在浏览器里面双击这个盘符就会提示磁盘未格式化,是否要格式它,碰到这种情况不要惊慌,更加不要按系统的提示去乖乖的格掉这个盘符.保持好数据现场,大多数情况下这类提示格式化的数据还是可以完整恢复的.系统出现这种盘符打不开,一般是由以下几种原因引起的,比如病毒引起或者非法关机造成分区数据异常,破坏了分区里面某些关键数据,或者是电源不稳定供电不足导致磁盘I/O出错,热插拔移动硬盘或者U盘也经常会出现提示未要恢复的现象. 下面我们用超级数据恢复软件来介绍一下如何来

U盘出现未格式化提示时文件恢复教程

我的U盘通过u盘启动PE系统的时候突然断电,导致U盘暂时瘫痪,通过别的机器,插入U盘打开出现"磁盘:未被格式化"的提示,要求进行U盘格式化,但是U盘里面存储了很多重要的数据肿么能随便格式化,于是走上探索如何恢复U盘数据. 很多时候在对U盘进行数据传输的时候,突然拔掉,活动断电,或者死机,都会导致u盘出错,打不开出错,提示"磁盘X:未被格式化",如果大家也出现 这样的请求,不用过于焦虑,因为其实问题解决起来也不是很难,分析一下,往往是是引导扇区破坏了导致出错,DBR受

拖动无系统标题栏的窗口

在VB中可以通过设置Form的属性,制作无系统标题栏的窗口.可是,由于失去了系统标题栏,如何使用鼠标拖动窗口便成了一个棘手的问题.其实,借助API函数ReleaseCapture和SendMessage,这个问题便可迎刃而解了. 首先,在module文件中加入下列声明语句: Declare Sub ReleaseCapture Lib"User"() Declare Function SendMessage Lib"User"(ByVal hWnd _As Inte

win7系统无法格式化u盘怎么办

  win7系统无法格式化u盘怎么办          首先按Win+R打开运行,输入cmd进入命令提示符. 在命令提示符中执行命令format h:(h是u盘的盘符)然后等待格式化完成. 当出现以下提示则说明格式化完成了. windows7教程 windows8教程 windows10教程

Win8.1安装iTunes软件提示“安装过程中出错,您的系统未被修改”解决方法

Win8.1安装iTunes软件提示"安装过程中出错,您的系统未被修改"解决方法   解决方法:出现这个错误是由于在win8.1中有一个"Devic Intall Service"服务没有启动引起的,只要我们正常启动他就可以了. 操作方法: 1.按下WIN+R键,然后输入 services.msc 回车; 2.在服务列表中找到"Devic Intall Service"服务;xitongcheng.com 3.双击该服务,在配置中点击"

如何解决移动硬盘分区打不开提示未格式化

步骤一.首先鼠标右击"我的电脑",单击"管理",单击"磁盘管理",在右边窗口上能找到你电脑的所有分区,如图. 步骤二.右击所需要合并的分区,单击"删除逻辑驱动器",会弹出警告信息,单击"是"即可.如图所示: 步骤三.根据步骤二的方法将需要合并的分区进行"删除逻辑驱动器"的操作. 步骤四.现在这些已经被删除的分区已经成为一个大的分区,此时会变为黑色,但是只能看到是不能对使用存储的. 步骤五

win7旗舰版系统图标显示空白的解决方法

在win7旗舰版系统中,我们接触的最多的就是文件程序,而文件和程序以最直观的图标方式展现在我们的眼前,如果在使用win7系统的过程中遇上图标问题怎么办呢?最近就有用户反映在Win7 64位旗舰版中,很多程序图标变为空白了,有的显示残缺不全,这是典型的图标缓存出错,我们只要重建安图标缓存就可以解决,有兴趣的朋友不妨来一起学习一下. win7系统图标空白显示怎么办?win7系统重建图标缓存的方法. 为了让大家更方便,小编这里把操作命令整合起来,大家只要复制下列的代码到记事本中另存为重建图标缓存.ba

U盘遭遇“磁盘未格式化”怎么回事?

  原因分析: 1.在使用完U盘时没有使用正确的方法进行安全删除U盘的操作; 2.用户在其他电脑上对U盘进行数据拷贝读取操作时拔除了U盘. 解决方法: 1.使用DiskGenius硬盘管理工具的"以删除或格式化后的文件恢复"进行操作; 2.将U盘重新插回到原来进行操作的电脑上,等待识别出U盘信息为止. 如果你也碰到"磁盘未格式化"的问题,不妨看看上面的原因分析和解决办法.赶紧去试试上面所说的解决办法吧.