核心代码片断: ULARGE_INTEGER FreeBytesAvailable,TotalNumberOfBytes,TotalNumberOfFreeBytes;GetDiskFreeSpaceEx(_T("E:"),&FreeBytesAvailable,&TotalNumberOfBytes,&TotalNumberOfFreeBytes);
function GetVolumeID : string; var vVolumeNameBuffer: array[0255]of Char; vVolumeSerialNumber: DWORD; vMaximumComponentLength: DWORD; vFileSystemFlags: DWORD; vFileSystemNameBuffer: array[0255]of Char; begin if GetVolumeInformation('C:\', vVolumeNameBuffer, SizeOf(vVolumeNameBuffer), @vVolumeSerialNumber, vMaximumComponentLength, vFileSystemFlags, vFileSystemNameBuffer, SizeOf(vFileSystemNameBuffer)) then begin Result := IntToHex(vVolumeSerialNumber, 8); end; end;
procedure TForm1Button1Click(Sender: TObject);
var s:string;
x:integer;
i:char;
begin
for i:='B' to 'Z' do //因为A盘是35英寸软件 也算是可移动的 ,所以先排除在外
begin
s:=i+':\';
x := GetDriveType(pansichar(s));//得到盘的类型
if x=2 then
begin
showmessage(i+' 盘是可移动磁盘');
end;
end;
//从B到Z 进行测试,如果是U盘就输出,因为可能有很多u盘 所以并没有在找到第一个就进行跳出
end;
end
我的做法就是测试所有的A:\ B:\ C:\
测试通过 请在能用之后 给我加分啊 谢谢 我花了1个多小时才搞出来的 查很多资料,然后自己又写。
所查资料:该资料来自葵花宝典
当要知道所选的驱动器属于什么类型时,请看下面的程序
var x:integer;
driver:pchar;
begin
driver:='f:\';
x := GetDriveType(driver);
Case x of
2: Label1Caption := '该驱动器是可移动驱动器';
3: Label1Caption := '该驱动器是固定驱动器';
4: Label1Caption := '该驱动器是网络驱动器';
5: Label1Caption := '该驱动器是CD-ROM驱动器';
6: Label1Caption := '该驱动器是虚拟驱动器';
Else Label1Caption := '该驱动器无效';
End;
end;
这个有点复杂,首先要判断当前 *** 作系统,写一个截获系统消息的钩子函数,部分系统要在主进程将钩子函数进程提升到第零环(ring 0),当有心磁盘插入的时候调用读取函数,分析磁盘分区信息然后读入分区表和目录信息,
Visual Query Builder 以可视化的方式建立SQL语句对数据库表和表中的记录进行 *** 作
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SQL links使得Delphi数据库应用程序利用SQL语言访问驻留在远程服务器上的数据 这些服务器包括ORACLE Sybase Microsoft SQL Server Informix InterBase 当安装SQL Link驱动程序之后 SQL语句便可以直接 *** 作服务器上的数据
Delphi可以访问的数据源(DataSource)
Delphi数据库应用程序是通过BDE获取它们所需的数据的 BDE与不同类型的数据源打交道 BDE可以使用的数据源有如表 所示
表 Delphi可访问的数据源
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
数据源(DataSource) 特 性 描 述 文件扩展名
─────────────────────────────────────
dBASE数据库 数据库表是通过dBASE数据库管理系统或DBD建立的 每个表是一个独立的文件 DBF
─────────────────────────────────────
Paradox数据库 数据库表是通过Paradox数据库管理系统 DB或DBD建立的 每个表是一个独立的文件
─────────────────────────────────────
ASCII文件 表是通过Database Desktop建立的 每个 TXT表是一个独立的文件
─────────────────────────────────────
本地InterBase服务器 数据库是通过InterBase数据库管理系统 GDB建立的 多个表包含在一个数据库文件中
─────────────────────────────────────
SQL数据库服务器 数据库是通过相应的数据库服务器提供的 依赖不同的ORACLE Sybase Informix 专用或通用工具建立的 也可以通过DBD来 数据库管理Microsoft SQL Server 创建数据库 并通过SQL Link访问数据库 系统InterBase
─────────────────────────────────────
ODBC数据源 主要是指那些具有ODBC接口的数据库系统 依赖于相应如MS Access Btrieve等的数据库
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Delphi数据库的体系结构
Delphi使用可视化的部件创建数据库应用 跟创建其它的非数据库应用程序一样 数据库部件都具备一定的属性 程序设计人员可以在设计过程中设置部件的多种属性 也可以在程序运行过程中通过程序来设置部件的各种属性
在Delphi部件板上有两页数据库部件用于开发数据库应用程序
数据访问部件页 该页上的部件主要用于说明有关的数据库的信息 如应用程序要访问(连接)的数据库 要访问数据库中的具体的数据库表 以及要访问表中哪些字段等 在实际的开发应用中常用的部件有TDataSource TTable TQuery等
数据控制部件页 该页上的部件主要用于显示浏览数据库中的数据信息 为用户提供了一个可视化的界面 常用的部件有 TDBGrid TDBEdit TDBCheck等 可以让用户对数据库中的信息进行有效的浏览 编辑 插入 删除等 *** 作
TTable TQuery TStoredproc部件负责与实际的数据库表联系 并从中获取数据信息 因而它们又常常被称为数据集部件 它们在程序设计过程中是可见的 但在程序运行时是不可见的 它们通过 BDE 为应用程序提供与数据库的连接 数据控制部件通过TDataSource部件与数据集部件相连 为用户提供一个可视化的界面 并在其中显示数据库中的数据信息
数据访问部件
数据访问部件页上提供了一组数据访问部件用来访问数据库中的数据
当要创建一个数据库应用时 首先在窗体中选择一个数据访问部件 然后为数据访问部件设置有关的属性 说明要访问的数据库 数据表以及表中的记录等 数据访问部件为数据控制部件与数据源建立一条通道 数据访问部件在程序运行时是不可见的 下表列出了数据访问页上的数据访问部件以及它们的主要用途
表 数据访问部件
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
部件名称 主 要 用 途
────────────────────────────
作为数据集部件TTable TQuery StoredProc组TDataSource 件与数据浏览件TDBGrid TDBEdit之间传送数据的通道
────────────────────────────
TTable 它是存取磁盘上数据库表的媒介 它通过BDE存取数据库表中的数据 TTable再与TDataSource进行 对话 使得数据浏览部件能够有效地从TTable中访问数据并能显示和编辑其中的数据
────────────────────────────
TQuery 它利用SQL语言访问磁盘上数据库表中的数据 并与TDataSource 对话 实现数据浏览部件对数据库的访问
────────────────────────────
TStoredProc 在应用程序中 它主要用来访问远程服务器中的存贮过程
────────────────────────────
TDatabase 当应用程序要登录到一个远程服务器上的数据库时 可以用该部件来建立应用程序与数据库永久
性的连接
────────────────────────────
TBatchMove 用于复制数据库表的结构或表中的记录
────────────────────────────
TReport 用于创建数据库的输出报表
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
lishixinzhi/Article/program/Delphi/201311/25180
以上就是关于delphi怎么取得磁盘C的剩余空间全部的内容,包括:delphi怎么取得磁盘C的剩余空间、delphi中如何获得硬盘序列号、delphi 取U盘盘符代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)