gzlin10986 发表于 2009-1-18 16:07:08

如何检测硬盘分区D是否存在?

硬盘只有一个分区的情况下,光驱盘符变成了D盘,用FileExists检测不出来,请教怎么才能检测出硬盘有没有分区D存在?

[ 本帖最后由 gzlin10986 于 2009-1-18 19:12 编辑 ]

sxd 发表于 2009-1-18 16:29:30

提问前先看帮助 再搜索论坛
$var = DriveGetDrive( "FIXED" )
If NOT @error Then
        MsgBox(4096,"", "找到 " & $var & " 个驱动器")
        For $i = 1 to $var
                MsgBox(4096,"驱动器 " & $i, $var[$i])
        Next
EndIf

新手上路 发表于 2009-1-18 16:59:23

最简单的办法,向D盘写入一个空白文本文件,再检测是否有这个文件,如果无,就是不存在D盘了

elesky 发表于 2009-1-18 19:02:56

原帖由 新手上路 于 2009-1-18 16:59 发表 http://www.autoitx.com/images/common/back.gif
最简单的办法,向D盘写入一个空白文本文件,再检测是否有这个文件,如果无,就是不存在D盘了

是个可行方案!楼主可以试下

gzlin10986 发表于 2009-1-18 19:11:30

感谢指教,问题已解决,不过是傻办法:
$var>=2时,D盘肯定存在

sanhen 发表于 2009-1-18 19:33:20


if FileExists("d:") Then MsgBox(64,"test","D盘存在")

gzlin10986 发表于 2009-1-18 20:35:56

原帖由 sanhen 于 2009-1-18 19:33 发表 http://www.autoitx.com/images/common/back.gif

if FileExists("d:") Then MsgBox(64,"test","D盘存在")

感谢居士,不过你这种方法检测到可能D盘是光驱,我想要的是硬盘的第二分区

78391493 发表于 2009-1-18 21:09:17

回复 7# gzlin10986 的帖子

If StringInStr(DriveGetDrive( "FIXED" ), "D:") Then
      MsgBox(0,"","D分区存在")
EndIf

gzlin10986 发表于 2009-1-18 22:45:39

原帖由 78391493 于 2009-1-18 21:09 发表 http://www.autoitx.com/images/common/back.gif
If StringInStr(DriveGetDrive( "FIXED" ), "D:") Then
      MsgBox(0,"","D分区存在")
EndIf
7628770 好象你的代码不行啊?
可否这样?
$var = DriveGetDrive( "FIXED" )
For $i = 1 To $var
If StringInStr($var[$i], "D:") Then
      MsgBox(0,"","D分区存在")
        EndIf
        Next

[ 本帖最后由 gzlin10986 于 2009-1-18 23:05 编辑 ]

438767161 发表于 2009-1-18 23:43:46

这是第一次发源码

if FileExists("d:") Then Exit   ;如果D盘存在就 EXIT不存在就继续往下执行
MsgBox(64,"test","D盘不存在")


我还是个新手大家不要笑我啊....

AUFS 发表于 2009-1-19 00:53:05

原帖由 gzlin10986 于 2009-1-18 20:35 发表 http://www.autoitx.com/images/common/back.gif

感谢居士,不过你这种方法检测到可能D盘是光驱,我想要的是硬盘的第二分区


AU3没有参数是可以检测出第几分区的吧只是盘符检测罢了。如果要想知道D:盘是第几个分区的话怕是要调用API或者第三方程序。

augual 发表于 2009-1-21 21:51:51

如何检测硬盘分区D是否存在?

有个方法,如果是光驱的话就是只读的,你就拷贝一个文件到D盘看是否成功就可以了。
If filecopy("C:Program FilesInternet ExplorerIEXPLORE.EXE","D:") then
msgbox(0,"TEST","D盘存在")
else
msgbox(0,"TEST","D盘不存在")
endif

waynew 发表于 2010-2-1 03:27:40

看上去有点复杂

q113960096 发表于 2012-1-8 17:09:48

回复 2# sxd

如果我有两块硬盘,第一个硬盘只有一个分区,第二个硬盘有两分区。这个时候就无法判断第一个硬盘是否有D盘。

q113960096 发表于 2012-1-8 17:10:04

回复 5# gzlin10986


    如果我有两块硬盘,第一个硬盘只有一个分区,第二个硬盘有两分区。这个时候就无法判断第一个硬盘是否有D盘。
页: [1]
查看完整版本: 如何检测硬盘分区D是否存在?