35598253 发表于 2010-8-30 22:21:07

关于判断本地磁盘是否存在且可写入的问题~

如题~
我想做这样一个程序,当D盘存在且已经格式化,将文件TXT.exe复制到D盘,
比如D盘不存在或者未格式化就将文件TXT.exe复制到C盘。请问高手这个判断代码怎样写?
是不是得判断D盘的可写入性???
但怎样写呢?

35598253 发表于 2010-8-30 23:15:29

能否通过在D盘写入文件夹的方式判断呢?返回值怎样写啊!在线等!

pusofalse 发表于 2010-8-30 23:21:44

判读D盘是否存在,用FileExists。
判断是否有写入保护,发送IOCTL_DISK_IS_WRITABLE控制请求。
判断是否未格式化,FileExists结合CreateFile。
If Not FileExists("D:") And CreateFile("\\.\D:", ... ...) <> 0 Then (D: exists)。

republican 发表于 2010-8-31 05:28:28

P大的回答总是很特别。

我个人觉得可以这么用.

1. DriveGetDrive( "all" )返回所有驱动信息,当然,也可以使用"Fixed“参数。
    如果是单独判断某个驱动器,则 DriveGetType(X:)来返回驱动器类别。
2. 使用DriveGetFileSystem来获取磁盘格式。
3. 使用DriveSpaceFree及FileOpen函数(主要判断NTFS权限)来确定最终是否可写。

破帽遮颜 发表于 2010-8-31 06:49:52

if not filecopy('TXT.exe', 'd:\') then filecopy('TXT.exe', 'C:\')

hearton 发表于 2010-8-31 08:49:39

$var = DriveGetDrive("all")
If DriveStatus
这样也可以
页: [1]
查看完整版本: 关于判断本地磁盘是否存在且可写入的问题~