首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi 当前目录 有没有指定文件解决办法

2012-04-17 
delphi 当前目录 有没有指定文件比如检查 程序文件当前目录下 有没有个文件:a.txt[解决办法]if FileExists

delphi 当前目录 有没有指定文件
比如检查 程序文件当前目录下 有没有个文件:a.txt

[解决办法]
if FileExists(ExtractFileDir(Application.ExeName)+'\a.Txt') then ShowMessage('文件存在')
else ShowMessage('文件不存在')
[解决办法]

Delphi(Pascal) code
procedure TForm1.Button1Click(Sender: TObject);beginif FileExists(ExtractFileDir(Application.ExeName)+'\a.Txt') then  ShowMessage('文件存在')else   ShowMessage('文件不存在')end;
[解决办法]
用path=ExtractFilePath(Application.ExeName));得到当前应用程序所在的路径


文件的操作函数,网上搜的:
Delphi(Pascal) code
//判断文件是否存在 FileExists//判断文件夹是否存在 DirectoryExists//删除文件 DeleteFile; Windows.DeleteFile//删除文件夹 RemoveDir; RemoveDirectory//获取当前文件夹 GetCurrentDir//设置当前文件夹 SetCurrentDir; ChDir; SetCurrentDirectory//获取指定驱动器的当前路径名 GetDir//文件改名 RenameFile//建立文件夹 CreateDir; CreateDirectory; ForceDirectories//删除空文件夹 RemoveDir; RemoveDirectory//建立新文件 FileCreate//获取当前文件的版本号 GetFileVersion//获取磁盘空间 DiskSize; DiskFree//搜索文件 FindFirst; FindNext; FindClose//读取与设置文件属性 FileGetAttr; FileSetAttr//获取文件的创建时间 FileAge; FileDateToDateTimeDelphi代码//判断文件是否存在 FileExists    var   f: string;    begin   f := 'c:\temp\test.txt';    if not FileExists(f) then   begin      //如果文件不存在    end;    end;       --------------------------------------------          //判断文件夹是否存在 DirectoryExists    var   dir: string;    begin   dir := 'c:\temp';    if not DirectoryExists(dir) then   begin      //如果文件夹不存在    end;    end;       --------------------------------------------          //删除文件 DeleteFile; Windows.DeleteFile    var   f: string;    begin   f := 'c:\temp\test.txt';    //DeleteFile(f); //返回 Boolean       //或者用系统API:    Windows.DeleteFile(PChar(f)); //返回 Boolean    end;       --------------------------------------------          //删除文件夹 RemoveDir; RemoveDirectory    var   dir: string;    begin   dir := 'c:\temp';    RemoveDir(dir); //返回 Boolean       //或者用系统 API:    RemoveDirectory(PChar(dir)); //返回 Boolean    end;       --------------------------------------------          //获取当前文件夹 GetCurrentDir    var   dir: string;    begin   dir := GetCurrentDir;    ShowMessage(dir); //C:\Projects    end;       --------------------------------------------          //设置当前文件夹 SetCurrentDir; ChDir; SetCurrentDirectory    var   dir: string;    begin   dir := 'c:\temp';    if SetCurrentDir(dir) then       ShowMessage(GetCurrentDir); //c:\temp       //或者    ChDir(dir); //无返回值       //也可以使用API:    SetCurrentDirectory(PChar(Dir)); //返回 Boolean    end;       --------------------------------------------          //获取指定驱动器的当前路径名 GetDir    var   dir: string;    b: Byte;    begin   b := 0;    GetDir(b,dir);    ShowMessage(dir); //       //第一个参数: 1、2、3、4...分别对应: A、B、C、D...    //0 是缺省驱动器    end;       --------------------------------------------          //文件改名 RenameFile    var   OldName,NewName: string;    begin   OldName := 'c:\temp\Old.txt';    NewName := 'c:\temp\New.txt';       if RenameFile(OldName,NewName) then       ShowMessage('改名成功!');       //也可以:    SetCurrentDir('c:\temp');    OldName := 'Old.txt';    NewName := 'New.txt';       if RenameFile(OldName,NewName) then       ShowMessage('改名成功!');    end;       --------------------------------------------          //建立文件夹 CreateDir; CreateDirectory; ForceDirectories    var   dir: string;    begin   dir := 'c:\temp\delphi';    if not DirectoryExists(dir) then       CreateDir(dir); //返回 Boolean       //也可以直接用API:    CreateDirectory(PChar(dir),nil); //返回 Boolean       //如果缺少上层目录将自动补齐:    dir := 'c:\temp\CodeGear\Delphi\2007\万一';    ForceDirectories(dir); //返回 Boolean    end;       --------------------------------------------          //删除空文件夹 RemoveDir; RemoveDirectory    var   dir: string;    begin   dir := 'c:\temp\delphi';    RemoveDir(dir); //返回 Boolean       //也可以直接用API:    RemoveDirectory(PChar(dir)); //返回 Boolean    end;       --------------------------------------------          //建立新文件 FileCreate    var   FileName: string;    i: Integer;    begin   FileName := 'c:\temp\test.dat';    i := FileCreate(FileName);       if i>0 then       ShowMessage('新文件的句柄是: ' + IntToStr(i))    else       ShowMessage('创建失败!');    end;       --------------------------------------------          //获取当前文件的版本号 GetFileVersion    var   s: string;    i: Integer;    begin   s := 'C:\WINDOWS\notepad.exe';    i := GetFileVersion(s); //如果没有版本号返回 -1    ShowMessage(IntToStr(i)); //327681 这是当前记事本的版本号(还应该再转换一下)    end;       --------------------------------------------          //获取磁盘空间 DiskSize; DiskFree    var   r: Real;    s: string;    begin   r := DiskSize(3); //获取C:总空间, 单位是字节    r := r/1024/1024/1024;    Str(r:0:2,s); //格式为保留两位小数的字符串    s := 'C盘总空间是: ' + s + ' GB';    ShowMessage(s); //xx.xx GB       r := DiskFree(3); //获取C:可用空间    r := r/1024/1024/1024;    Str(r:0:2,s);    s := 'C盘可用空间是: ' + s + ' GB';    ShowMessage(s); //xx.xx GB    end;       //查找一个文件 FileSearch    var   FileName,Dir,s: string;    begin   FileName := 'notepad.exe';    Dir := 'c:\windows';    s := FileSearch(FileName,Dir);       if s<>'' then       ShowMessage(s) //c:\windows\notepad.exe    else       ShowMessage('没找到');    end;       --------------------------------------------          //搜索文件 FindFirst; FindNext; FindClose    var   sr: TSearchRec;    //定义 TSearchRec 结构变量    Attr: Integer;     //文件属性    s: string;         //要搜索的内容    List: TStringList; //存放搜索结果    begin   s := 'c:\windows\*.txt';    Attr := faAnyFile;             //文件属性值faAnyFile表示是所有文件    List := TStringList.Create;    //List建立       if FindFirst(s,Attr,sr)=0 then //开始搜索,并给 sr 赋予信息, 返回0表示找到第一个    begin       repeat                       //如果有第一个就继续找          List.Add(sr.Name);         //用List记下结果        until(FindNext(sr)<>0);      //因为sr已经有了搜索信息, FindNext只要这一个参数, 返回0表示找到    end;    FindClose(sr);                 //需要结束搜索, 搜索是内含句柄的       ShowMessage(List.Text);        //显示搜索结果    List.Free;                     //释放List       //更多注释:    //TSearchRec 结构是内涵文件大小、名称、属性与时间等信息    //TSearchRec 中的属性是一个整数值, 可能的值有:    //faReadOnly 1   只读文件    //faHidden    2   隐藏文件    //faSysFile   4   系统文件    //faVolumeID 8   卷标文件    //faDirectory 16 目录文件    //faArchive   32 归档文件    //faSymLink   64 链接文件    //faAnyFile   63 任意文件       //s 的值也可以使用?通配符,好像只支持7个?, 如果没有条件就是*, 譬如: C:\*    //实际使用中还应该在 repeat 中提些条件, 譬如判断如果是文件夹就递归搜索等等    end;       --------------------------------------------          //读取与设置文件属性 FileGetAttr; FileSetAttr    var   FileName: string;    Attr: Integer; //属性值是一个整数    begin   FileName := 'c:\temp\Test.txt';    Attr := FileGetAttr(FileName);    ShowMessage(IntToStr(Attr)); //32, 存档文件       //设置为隐藏和只读文件:    Attr := FILE_ATTRIBUTE_READONLY or FILE_ATTRIBUTE_HIDDEN;    if FileSetAttr(FileName,Attr)=0 then //返回0表示成功        ShowMessage('设置成功!');       //属性可选值(有些用不着):    //FILE_ATTRIBUTE_READONLY = 1; 只读    //FILE_ATTRIBUTE_HIDDEN = 2; 隐藏    //FILE_ATTRIBUTE_SYSTEM = 4; 系统    //FILE_ATTRIBUTE_DIRECTORY = 16    //FILE_ATTRIBUTE_ARCHIVE = 32; 存档    //FILE_ATTRIBUTE_DEVICE = 64    //FILE_ATTRIBUTE_NORMAL = 128; 一般    //FILE_ATTRIBUTE_TEMPORARY = 256    //FILE_ATTRIBUTE_SPARSE_FILE = 512    //FILE_ATTRIBUTE_REPARSE_POINT = 1204    //FILE_ATTRIBUTE_COMPRESSED = 2048; 压缩    //FILE_ATTRIBUTE_OFFLINE = 4096    //FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 8192; 不被索引    //FILE_ATTRIBUTE_ENCRYPTED = 16384    end;       --------------------------------------------          //获取文件的创建时间 FileAge; FileDateToDateTime    var   FileName: string;    ti: Integer;    dt: TDateTime;    begin   FileName := 'c:\temp\Test.txt';    ti := FileAge(FileName);    ShowMessage(IntToStr(ti)); //返回: 931951472, 需要转换       dt := FileDateToDateTime(ti); //转换    ShowMessage(DateTimeToStr(dt)); //2007-12-12 14:27:32    end; 

热点排行