Dir函数、ChDir、ChDrive语句使用
- 格式:xlsx
- 大小:19.14 KB
- 文档页数:2
ChDir、ChDrive,Dir等的使用说明一、ChDir 语句改变当前的目录或文件夹语法:ChDir path必要的 path 参数是一个字符串表达式,它指明哪个目录或文件夹将成为新的缺省目录或文件夹。
path 可能会包含驱动器。
如果没有指定驱动器,则 ChDir 在当前的驱动器上改变缺省目录或文件夹。
说明:ChDir 语句改变缺省目录位置,但不会改变缺省驱动器位置。
ChDir ".." ' 在 Microsoft Windows 中,上移一层目录.二、ChDrive 语句改变当前的驱动器语法:ChDrive drive必要的drive 参数是一个字符串表达式,它指定一个存在的驱动器。
如果使用零长度的字符串 (""),则当前的驱动器将不会改变。
如果drive 参数中有多个字符,则 ChDrive 只会使用首字母。
三、Dir 函数返回一个String,用以表示一个文件名、目录名或文件夹名称,它必须与指定的模式或文件属性、或磁盘卷标相匹配。
语法:Dir[(pathname[, attributes])]Dir函数的语法具有以下几个部分:部分描述pathname可选参数。
用来指定文件名的字符串表达式,可能包含目录或文件夹、以及驱动器。
如果没有找到pathname,则会返回零长度字符串 ("")。
attributes可选参数。
常数或数值表达式,其总和用来指定文件属性。
如果省略,则会返回匹配pathname但不包含属性的文件。
设置值attributes参数的设置可为:常数值描述vbNormal0(缺省) 指定没有属性的文件。
vbReadOnly1指定无属性的只读文件vbHidden2指定无属性的隐藏文件VbSystem4指定无属性的系统文件在Macintosh中不可用。
vbVolume8指定卷标文件;如果指定了其它属性,则忽略vbVolume在Macintosh中不可用。
VBA文件操作及目录操作vba包含了许多用于文件操作的语句和函数,可以满足绝大多数情况下的文件操作要求。
下面我们按照操作目的进行一一介绍。
(一)文件处理语句语法:nameoldpathnameasnewpathname功能:重命名一个文件、目录、或文件夹,移动一个文件。
说明:在一个已打开的文件上使用name,将会产生错误。
进行文件操作时,一定要注意错误处理。
示例:onerrorresumenext'错误处理name\'重命名name\'移动文件name\'跨驱动器移动并重命名文件特别注意:name无法移动一个目录或文件夹。
2、filecopy语句语法:filecopysource,destination功能:复制一个文件。
表明:如果对一个已关上的文件采用filecopy语句,则可以产生错误。
示例:filecopy\'从f盘激活test.xls至e盘3、kill语句语法:killpathname功能:从磁盘中删除文件。
表明:kill积极支持多字符(*)和单字符(?)的统配iou选定多重文件。
如果采用kill去删掉一个已关上的文件,则可以产生错误。
示例:kill\’删掉f盘的test.xls文件kill\'删掉f盘所有xls文件4、getattr函数语法:getattr(pathname)功能:获取一个文件、目录、或文件夹的属性。
返回一个integer值。
返回值由getattr回到的值,就是下面这些属性值的总和:常数值描述vbnormal0常规vbreadonly1只读vbhidden2隐藏vbsystem4系统文件vbdirectory16目录或文件夹vbarchive32档案文件vbalias64指定的文件名是别名。
只在macintosh中可用。
表明:若必须推论与否设置了某个属性,在getattr函数与想获知的属性值之间采用and运算符与逐位比较。
第七章VB中的文件操作7.1文件系统控件1.文件系统控件种类(1)驱动器列表框(DriveListBox):用来显示当前机器上的所有盘符(2)目录列表框(DirListBox):用来显示当前盘上的所有文件夹(3)文件列表框(FileListBox):用来显示当前文件夹下的所有文件名2.重要属性3.重要事件7.2文件的读写1.文件的有关概念记录:计算机处理数据的基本单位,由若干个相互关联的数据项组成。
相当于表格中的一行。
文件:记录的集合,相当于一张表。
文件类型:顺序文件、随机文件、二进制文件。
访问模式:计算机访问文件的方式,VB中有顺序、随机、二进制三种访问模式。
2.顺序访问模式顺序访问模式的规则最简单,指读出或写入时,从第一条记录“顺序”地读到最后一条记录,不可以跳跃式访问。
该模式专门用于处理文本文件,每一行文本相当于一条记录,每条记录可长可短,记录与记录之间用“换行符”来分隔。
顺序文件的写入步骤:打开、写入、关闭;读出步骤:打开、读出、关闭。
(1)打开文件打开文件的命令是Open,格式为:Open“文件名”For模式 As [#] 文件号[Len=记录长度]说明:1)文件名可以是字符串常量也可以是字符串变量2)模式可以是下面之一:OutPut:打开一个文件,将对该文件进行写操作Input:打开一个文件,将对该文件进行读操作Append:打开一个文件,将在该文件末尾追加记录3)文件号是一个介于1-511之间的整数,打开一个文件时需要指定一个文件号,这个文件号就代表该文件,直到文件关闭后这个号才可以被其他文件所使用。
可以利用FreeFile()函数获得下一个可以利用的文件号。
例:Open "D:\sj\aaa" For Output As #1意思是:打开D:\SJ下aaa文件供写入数据,文件号为#1(2)写操作将数据写入磁盘文件所用的命令是:Write# 或Print#。
语法格式:1) Print #文件号,[输出列表]例:Open “D:\SJ\TEST.DAT”For Output As #1Print #1,Text1.Text '把文本框的内容一次性写入文件Close #12)Write #文件号,[输出列表]其中的输出列表一般指用逗号,分隔的数值或字符串表达式。
chdir目录函数简介程序示例函数简介程序示例展开编辑本段函数简介简介:chdir 是C语言中的一个系统调用函数(同cd)函数名称:_chdir(在TC2.0下可以写作chdir)功能: 改变当前工作目录头文件:direct.h(在TC2.0下为dir.h)用法: int _chdir(const char *path);参数:Path 必选。
Path 可能包含驱动器。
如果未指定驱动器,则当前驱动器上的默认目录或文件夹。
返回值:成功返回0 ,失败返回-1异常:异常类型错误号条件ArgumentException 52 Path 为空。
FileNotFoundException 76 指定的驱动器无效,或驱动器不可用。
备注:ChDir 函数更改默认目录,但是不更改默认驱动器。
例如,如果默认驱动器是C,下面的语句更改驱动器 D 上的默认目录,但 C 仍为默认驱动器:安全注意:ChDir 函数需要非托管代码权限,这可能会对它在部分信任情况下的执行产生影响。
有关更多信息,请参见SecurityPermission 类和代码访问权限。
在文件I/O 操作中,My 功能具有比ChDir 函数更高的效率和更好的性能。
编辑本段程序示例VC++6.0示例#include <stdio.h>#include <direct.h>#include <stdlib.h>int main( int argc,char *argv[] ){char path[_MAX_PATH];_getcwd(path,_MAX_PATH);printf("当前工作目录:\n%s\n",path);if( ( _chdir("d:\\visual c++") ) == 0 ){printf("修改工作路径成功\n");_getcwd(path,_MAX_PATH);printf("当前工作目录:\n%s\n",path);}else{perror("修改工作路径失败");exit(1);}return 0;}TC2.0下程序示例#include <stdio.h>#include <dir.h> /*高版本的编译器可能没有这个头文件*/ #include <stdlib.h>char old_dir[MAXDIR];char new_dir[MAXDIR];int main(void){if(getcurdir(0, old_dir)){perror("getcurdir()");exit(1);}printf("Current directory is: \\%s\n", old_dir);if (chdir("\\")){perror("chdir()");exit(1);}if(getcurdir(0, new_dir)){perror("getcurdir()");exit(1);}printf("Current directory is now: \\%s\n", new_dir);printf("\nChanging back to orignal directory: \\%s\n", old_dir);if(chdir(old_dir)){perror("chdir()");exit(1);}return 0;}unix/linux中的用法#include <stdio.h>#include <unistd.h> //这里与windows的不一样。
chdir用法
chdir函数是一个在操作系统中经常使用的函数,用来改变当前的工作目录。
chdir函数的原型如下:
`int chdir(const char *path);`
函数的参数是一个字符串path,表示要改变到的目标目录。
函数返回值为0表示成功,-1表示失败。
使用chdir函数的步骤如下:
1. 引入unisted.h头文件:`#include <unistd.h>`
2. 调用chdir函数,并传入要改变到的目标目录:
c
int result = chdir("/path/to/directory");
其中,"/path/to/directory"是要改变到的目标目录的路径。
3. 判断返回值result,如果为0表示成功,如果为-1表示失败。
chdir函数的使用场景包括但不限于:
- 在终端中切换当前目录,例如,进入某个目录,使用命令`cd
/path/to/directory`的本质就是调用chdir函数。
- 在程序中访问指定目录下的文件,例如,读取某个目录下的所有文件信息。
需要注意的是,chdir函数只是改变当前进程的工作目录,并不会改变其他进程的工作目录。
并且,chdir函数只能改变到已存在的目录,无法创建新的目录。
FatFs中文注释FatFsFatFS是一个为小型嵌入式系统设计的通用FAT(File Allocation Table)文件系统模块。
FatFs 的编写遵循ANSI C,并且完全与磁盘I/O层分开。
因此,它独立(不依赖)于硬件架构。
它可以被嵌入到低成本的微控制器中,如AVR, 8051, PIC, ARM, Z80, 68K 等等,而不需要做任何修改。
特点·Windows兼容的FAT文件系统·不依赖于平台,易于移植·代码和工作区占用空间非常小·多种配置选项:多卷(物理驱动器和分区)多ANSI/OEM代码页,包括DBCS在ANSI/OEM或Unicode中长文件名的支持RTOS的支持多扇区大小的支持只读,最少API,I/O缓冲区等等应用程序接口(API)FatFs 模块为应用程序提供了下列函数,这些函数描述了FatFs能对FAT卷执行哪些操作。
§f_mount§f_open§f_close§f_read§f_write§f_lseek§f_truncate§f_sync§f_opendir§f_readdir§f_getfree§f_stat§f_mkdir§f_unlink§f_chmod§f_utime§f_rename§f_mkfs§f_forward§f_chdir§f_chdrive§f_gets§f_putc§f_puts§f_printff_mount在FatFs模块上注册/注销一个工作区(文件系统对象)FRESULT f_mount (BYTE Drive, /* 逻辑驱动器号 */FATFS* FileSystemObject /* 工作区指针 */);参数Drive注册/注销工作区的逻辑驱动器号(0-9)。
Vb6.0语句大全1、AppActivate 语句激活一应用程序窗口。
语法AppActivate title[, wait]AppActivate语句的语法具有以下几个命名参数:说明AppActivate语句将焦点移动到命名的应用程序或窗口,但并不影响焦点是否最大化或最小化。
当用户采取行动改变焦点或将窗口关闭时,就会将焦点从活动的应用程序窗口移动出去。
可用Shell函数启动一个应用程序并设置窗口样式。
在决定激活哪个应用程序时,请将title与每一个运行中的应用程序的标题字符串进行比较。
如果没有完全匹配,就激活任何这样的应用程序,其标题字符串以title开头。
如果以title命名的应用程序有很多实例,则激活任何一个实例。
AppActivate 语句示例本示例说明使用AppActivate语句来激活应用程序的各种用法。
示例中用到的Shell语句均假定该应用程序已经存在指定的路径中。
Dim MyAppID, ReturnValueAppActivate "Microsoft Word" ' 激活 Microsoft Word。
' AppActivate 也可利用 Shell 函数的返回值。
MyAppID = Shell("C:\WORD\WINWORD.EXE", 1) ' 运行 Microsoft Word。
AppActivate MyAppID ' 激活 Microsoft Word。
' 您也可使用 Shell 函数的返回值。
ReturnValue = Shell("c:\EXCEL\EXCEL.EXE",1) ' 运行 Microsoft Excel。
AppActivate ReturnValue ' 激活 Microsoft Excel。
2、Beep 语句通过计算机喇叭发出一个声调。
os.chdir()函数用法os.chdir()函数是Python标准库中的一个函数,其主要作用是用于改变当前工作目录。
通过该函数,我们可以方便地在不同的目录之间进行切换,从而实现对文件和目录的快速定位和操作。
在本文中,我们将详细介绍os.chdir()函数的使用方法和注意事项,以帮助读者更好地掌握该函数,并在实际开发中更加灵活地应用它。
一、os.chdir()函数的基本用法在Python中,os.chdir()函数用于改变当前工作目录,并返回当前目录的绝对路径。
其基本语法如下:os.chdir(path)其中,path参数表示要切换到的目标目录的路径。
该参数既可以是绝对路径,也可以是相对路径。
如果path是一个相对路径,则其相对于当前工作目录计算。
例如,我们要将当前工作目录切换到/home/user1/Documents目录下,可以使用如下代码:import osos.chdir('/home/user1/Documents')上述代码执行完毕后,当前工作目录就被切换为/home/user1/Documents目录,后续的文件和目录操作也会在该目录下进行。
二、os.chdir()函数使用案例为了更好地理解os.chdir()函数的使用方法和特性,我们来看一个具体的使用案例。
假设有以下目录结构:~/Documents/ |-Work/ |-task1/ |-test.py |-task2/ |-test.py其中,~/Documents/是我们的根目录,Work/是其中的子目录,包含两个子目录task1/和task2/。
在task1/和task2/目录下分别放置了一个test.py文件。
现在我们想要在某个脚本中调用这两个文件,应该如何操作呢?首先,我们需要将当前工作目录切换为Work目录,然后再分别调用task1/和task2/目录下的test.py文件。
可以使用如下代码:import osos.chdir('/home/user1/Documents/Work')os.system('python task1/test.py')os.system('python task2/test.py')上述代码首先将当前工作目录切换为/home/user1/Documents/Work,然后分别调用了task1/和task2/目录下的test.py文件。
dir函数的用法dir函数是Python中内置的一个函数,用于获取一个对象的所有属性和方法的列表。
该函数的用法非常简单,只需要传入一个对象作为参数,就可以返回该对象所有的属性和方法组成的列表。
在Python中,一切皆对象,所以我们可以使用dir函数来查看任何一个对象的属性和方法,无论是自定义的对象、内置的对象还是模块等。
使用dir函数可以帮助我们更好地了解一个对象的内部结构和可用的功能。
下面是一个简单的示例,演示了如何使用dir函数:```python# 定义一个自定义对象class Person:def __init__(self, name, age): = nameself.age = agedef say_hello(self):print("Hello, I'm " + )# 创建一个Person对象person = Person("Alice", 25)# 使用dir函数查看Person对象的属性和方法print(dir(person))```运行上述代码,输出结果为:```plaintext['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__','__ge__','__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__','__lt__','__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__','__setattr__','__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'age', 'name', 'say_hello'] ```可以看到,dir函数返回了一个包含Person对象的所有属性和方法的列表。
dir.h文件中函数的用法(转)chdir()改变当前目录的函数原形:int chdir(const char *path)功能:把由path指定的目录改为当前目录。
path参数中可以指定驱动器号,如“a:\\ddd”, 但只是改变该驱动器上的当前目录,对当前活动驱动器上的当前目录无影响。
返回值:0(成功);-1(失败)头文件:dir.h=============================================================================== ========findfirst()函数和findnext()函数调用方式:整形数=findfirst(文件名,&结构变量名,属性常数组合(如0x26));其中定义struct ffblk 结构变量名;原形:int findfirst(path,buffer,attr)和int findnext(buffer)char *path;//要检索的文件名struct ffblk{char ff_reserved[21];char ff_attrib;//被检索的文件属性unsigned ff_ftime;//最后修改的时间//(0-4位:秒数/2;5-10位:分数;11-15位:小时数)unsigned ff_fdate;//最后修改的日期//(0-4位:日;5-8位:月;9-15位:年减1980)long ff_fsize;//文件大小char ff_name[13];//组名}*buffer;int attr;//要检索的文件属性功能:检索由path和attr指定的文件,把结果返回到buffer。
findfirst返回关于第一个指定文件的信息,findnext继续检索。
返回值:0(检索成功),-1(没有找到指定的文件)属性常数:FA_NORMAL(0x00)含意:Normal file, no attributesFA_RDONLY(0x01)含意:只读FA_HIDDEN(0x02)含意:隐含文件FA_SYSTEM(0x04)含意:系统文件FA_LABEL(0x08)含意:卷标FA_DIREC(0x10)含意:子目录FA_ARCH(0x20)含意:修改的文件Archive头文件:dir.h(dos.h)=============================================================================== =====fnmerge()建立文件路径函数原形:void fnmerge(char *path,const char *drive,const char *dir, const char *name,const char*ext)功能:合成drive:\dir\name.ext,放在path头文件:dir.hfnsplit()分解完整的路径名函数原形:int fnsplit(char *path,const char *drive,const char *dir,const char *name,const char *ext)功能:把文件名路径path分成4个部分存放。
chdir()改变当前目录的函数原形:int chdir(const char *path)功能:把由path指定的目录改为当前目录。
path参数中可以指定驱动器号,如“a:\\ddd”, 但只是改变该驱动器上的当前目录,对当前活动驱动器上的当前目录无影响。
返回值:0(成功);-1(失败)头文件:dir.hgetcwd()读取当前目录的函数原形:char *getcwd(char *buf,int buflen)功能:读取当前目录的完整路径名(包括驱动器名),最长为buflen个字节,存放在buf中。
如果buf为NULL,函数将分配一个buflen字节长的缓冲区,以后可将本函数的返回值作为free函数的参数来释放该缓冲区。
返回值:若buf非空,调用成功返回buf,出错返回NULL;若buf为NULL,返回指向已经分配的内存缓冲区地址。
头文件:dir.h====================================================================== findfirst()函数和findnext()函数调用方式:整形数=findfirst(文件名,&结构变量名,属性常数组合(如0x26));其中定义struct ffblk 结构变量名;原形:int findfirst(path,buffer,attr)和int findnext(buffer)char *path;//要检索的文件名struct ffblk{char ff_reserved[21];char ff_attrib;//被检索的文件属性unsigned ff_ftime;//最后修改的时间//(0-4位:秒数/2;5-10位:分数;11-15位:小时数)unsigned ff_fdate;//最后修改的日期//(0-4位:日;5-8位:月;9-15位:年减1980)long ff_fsize;//文件大小char ff_name[13];//组名}*buffer;int attr;//要检索的文件属性功能:检索由path和attr指定的文件,把结果返回到buffer。
在我们日常使用Excel的时候,不仅会用到当前Excel文件的数据,还经常需要访问其他的数据文件。
这些数据文件可能是Excel文件、文本文件或数据库文件等。
经常有朋友会问如何在vba代码里操作这些数据文件?本文就系统地介绍一下在Excel中应用VBA操作数据文件的方法。
本文主要介绍四种常用的方法:1、利用Excel对象来处理文件;2、利用VBA文件处理语句来处理文件;3、利用FileSystemObject对象来处理文件;4、利用API函数来处理文件。
当然对于数据库文件,还可以利用ADO+SQL的方法操作,不过论坛已经有前辈详细介绍过此类方法,本文就不再重复了。
一、利用Excel对象来处理文件利用Excel对象自带的方法来操作文件是最方便,也是最简单的。
我们主要利用Workbooks集合和Workbook对象的方法来操作文件。
1、打开Excel文件我们可以用Workbooks.Open方法打开一个Excel工作簿。
Workbooks.Open(FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended,Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)其中FileName是必选的参数,表示要打开的工作簿名,如果没有指定路径,则代表当前路径。
另外14个是可选参数,除了密码参数,其他的一般很少用。
具体的含义可以参看VBA的帮助。
例:Workbooks.Open "F:\test.xls"可以打开F盘的test.xls文件。
2、打开文本文件使用Open方法也可以打开文本文件,但建议使用OpenText方法。
此方法是载入一个文本文件,并将其作为包含单个工作表的工作簿进行分列处理,然后在此工作表中放入经过分列处理的文本文件数据。
stm32 Fatfs 读写SD卡读写SD是嵌入式系统中一个比较基础的功能,在很多应用中都可以用得上SD 卡。
折腾了几天,总算移植成功了最新版Fatfs(Fatfs R0.09),成功读写SD卡下文件。
FatFs (/fsw/ff/00index_e.html)是一个通用的文件系统模块,用于在小型嵌入式系统中实现FAT文件系统。
FatFs 的编写遵循ANSI C,因此不依赖于硬件平台。
它可以嵌入到便宜的微控制器中,如8051, PIC, AVR, SH, Z80, H8, ARM 等等,不需要做任何修改。
1. SD卡/TF卡硬件接口SD卡有两种操作接口,SDIO和SPI。
使用SDIO口的速度比较快,SPI的速度比较慢。
SD卡引脚描述如下: SD卡SPI接法如下:我使用的是正点原子的开发板,所以采用的是SPI接口的模式。
TF卡SDIO 模式和SPI模式引脚定义:可以发现Micro SD卡只有8个引脚是因为比SD卡少了一个Vss。
使用TF转SD的卡套套在Micro SD卡上,这样一来大小就和SD卡一样大,这时候卡套上的9个引脚就和SD卡一样了,你可以完全当做SD卡来操作。
2. SD卡底层驱动SD卡的操作比较复杂,需要多看看一些文档。
这里附上SD底层驱动代码,代码说明详见注释Sd卡SPi操作底层代码: sdcard.c sdcard.h3. Fatfs 移植FatFs 软件包中相关文件:ffconf.h FatFs 模块配置文件ff.h FatFs 和应用模块公用的包含文件ff.c FatFs 模块diskio.h FatFs and disk I/O 模块公用的包含文件integer.h 数据类型定义option 可选的外部功能diskio.c FatFs 与disk I/O 模块接口层文件(不属于FatFs 需要由用户提供)FatFs 配置,文件系统的配置项都在ffconf.h 文件之中:(1) _FS_TINY :这个选项在R0.07 版本之中开始出现,在之前的版本都是以独立的文件出现,现在通过一个宏来修改使用起来更方便;(2) _FS_MINIMIZE、_FS_READONLY、_USE_STRFUNC、_USE_MKFS、_USE_FORWARD 这些宏是用来对文件系统进行裁剪(3) _CODE_PAGE :本选项用于设置语言码的类型(4) _USE_LFN :取值为0~3,主要用于长文件名的支持及缓冲区的动态分配:0:不支持长文件名;1:支持长文件名存储的静态分配,一般是存储在BSS 段;2:支持长文件名存储的动态分配,存储在栈上;3:支持长文件名存储的动态分配,存储在堆上。
vb 调用路径-回复标题:VB调用路径的深度解析一、引言Visual Basic(简称VB)是由Microsoft公司开发的一种基于Basic语言的可视化编程工具。
它以其简单易学、操作方便、功能强大的特点,深受广大程序设计人员的喜爱。
在使用VB进行编程时,我们需要调用各种外部文件或模块,这就涉及到路径的问题。
本文将详细介绍如何在VB 中调用路径。
二、基本概念1. 路径:在计算机科学中,路径是指从一个节点到另一个节点的一系列边的集合。
在文件系统中,路径是文件或目录的位置标识。
2. VB中的路径:在VB中,我们可以通过设置路径来指定要访问的文件或目录的位置。
三、VB中的路径类型在VB中,有三种类型的路径:1. 绝对路径:这是完整的路径,包括驱动器名、根目录和文件名。
例如"C:\Users\Documents\MyFile.txt"。
2. 相对路径:这是相对于当前工作目录的路径。
例如"MyFolder\MyFile.txt"。
3. 网络路径:用于访问网络上的共享资源。
例如"\\ServerName\FolderName\File.txt"。
四、VB中如何设置路径1. 使用绝对路径:直接在代码中写出完整的路径即可。
vbOpen "C:\Users\Documents\MyFile.txt" For Input As #12. 使用相对路径:首先需要确定当前的工作目录,然后在此基础上添加相对路径。
vbChDir "C:\Users\Documents"Open "MyFile.txt" For Input As #13. 使用网络路径:与绝对路径类似,只是路径开头是网络服务器的名称。
vbOpen "\\ServerName\FolderName\MyFile.txt" For Input As #1五、VB中的路径函数VB提供了一些内置的函数来处理路径:1. CurDir():返回当前工作目录。
第⼗章vb6.0⽂件管理及操作第⼗章⽂件管理及操作10.1 ⽂件系统的基本操作VB提供了⼀些⽤于处理⽂件系统的语句,使⽤这些语句可以在VB应⽤程序中进⾏更改当前⽬录、建⽴或删除⽬录、删除⽂件等基本操作。
⽬录操作1.获取指定驭动器的当前路径。
要获取某驱动器的当前路径,可以使⽤CurDir函数,它的语法是:CurDir [drive].参数drive是指要获取信息的驱动器名称,如果忽略该参数,则CurDir函数返回当前驱动器的当前路径。
例如,如果驱动器E;的当前路径为“E: \Too1\Qicq”,则如下语句将在窗体上显⽰“E:\Too1\Qicq”.Print CurDir(“E”)。
2.更改当前驱动器。
使⽤ChDrive语句可以更改当前驱动器,其语法为:ChDrive drive.参数drive为要指定为当前驱动器的名称,例如,将驱动器A:指定为当前驱动器的语句为:ChDrive “A”.3.更改当前路径。
使⽤ChDir语句可以更改当前路径,其语法为:ChDir Path.参数Path为要指定的路径,如果在路径中没有指定驱动器的名称,则表⽰驱动器为当前驱动器。
例如,将路径C: \Windows指定为当前路径的语句为:ChDir “C:\Windows”.4.建⽴与删除⽬录。
使⽤MkDir语句可以创建⼀个新的⽬录,其语法为:MktDir Path.参数Path⽤来指定所要创建的⽬录以及⽬录所在的路径。
Path可以包含驱动器。
如果没有指定路径,则MkDir会在当前路径下创建新的⽬录。
例如:MKDir “C:\aa”在C盘中创建⽬录aaMKDir “C:\Windows\bb”在C盘windows⽬录中创建⼦⽬录bbMKDir “CC”在当前路径下创建⽬录cc使⽤RmDir语句可以删除某⼀空⽬录,其语法为:RmDir Path.例如:MKDir “C:\aa”删除C盘中⽬录aaMKDir “C:\Windows\bb”删除C盘windows⽬录中的⼦⽬录bbMKDir “CC”删除当前路径下创建⽬录cc注意:RmDir语句只能⽤来删除空的⽬录,如果⽬录中还包含有⼦⽬录或⽂件,则必须先删除⼦⽬录和⽂件。
一、操作方法将所有要合并的工作簿存放到同目录下,在同目录下新建“汇总工作簿.xls”,打开后,按Alt+F11进入代码编辑界面,点击插入-模块,将代码复制粘贴进去,点击运行。
二、将多个工作簿的所有工作表(sheet)复制到一个工作簿内,代码:Sub CombineFiles()Dim path As StringDim FileName As StringDim LastCell As RangeDim Wkb As WorkbookDim WS As WorksheetDim ThisWB As StringDim MyDir As StringMyDir = ThisWorkbook.path & "\"'ChDrive Left(MyDir, 1) 'find all the excel files'ChDir MyDir'Match = Dir$("")ThisWB = Application.EnableEvents = FalseApplication.ScreenUpdating = Falsepath = MyDirFileName = Dir(path & "\*.xls", vbNormal)Do Until FileName = ""If FileName <> ThisWB ThenSet Wkb = Workbooks.Open(FileName:=path & "\" & FileName)For Each WS In Wkb.WorksheetsSet LastCell = WS.Cells.SpecialCells(xlCellTypeLastCell)If LastCell.Value = "" And LastCell.Address = Range("$A$1").Address ThenElseWS.CopyAfter:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)End IfNext WSWkb.Close FalseEnd IfFileName = Dir()LoopApplication.EnableEvents = TrueApplication.ScreenUpdating = TrueSet Wkb = NothingSet LastCell = NothingEnd Sub三、将多个工作簿的第一张工作表(sheet)复制到一个工作簿内,代码:Private Sub 合并工作薄()Dim f_name As StringDim bok1 As Workbook, bok2 As WorkbookSet bok2 = Nothingf_name = Dir(ThisWorkbook.Path & "\*.*") '获得该目录下的所有EXCEL文件Do While f_name <> "" '开始执行循环If f_name <> Then '如果当前的文件不是代码所在文件,执行合并操作Set bok1 = Workbooks.Open(ThisWorkbook.Path & "\" & f_name) '打开被合并的文件If bok2 Is Nothing Then '合并后的文件是否存在bok1.Sheets(1).Copy '如果合并后的文件不存在,则创建一个Set bok2 = ActiveWorkbookElsebok1.Sheets(1).Copy Before:=bok2.Sheets(1) '如果合并后的文件存,在则将被合并文件的第一个工作表复制到合并文件中。