哪位大侠帮帮忙呀,(windows下目录文件的问题)(19分)

  • 主题发起人 主题发起人 快乐的熊
  • 开始时间 开始时间

快乐的熊

Unregistered / Unconfirmed
GUEST, unregistred user!
1.如何设置新建目录(或文件)的属性(hide,readonly,...)<br>2.如何删除一个目录下的所有文件。
 
1.改变文件的属性 &nbsp;CoDelphi.com<br><br>摘 要:取得文件属性的信息<br>关键字:属性 文件<br>类 别:系统控制<br>&nbsp;<br>&nbsp; &nbsp; 想要读取一个文件的属性,就要用FileGetAttr函数调用文件名,即将文件属性返回到一指定文件。例如,添加一个Tbutton和Tlabel组件到窗体并添加如下代码:<br><br>var<br>&nbsp; attr:Integer;<br>&nbsp; s:string; <br>begin<br>&nbsp; attr:=FileGetAttr('c:/Autoexec.bat');<br>&nbsp; if(attr and faHidden)&lt;&gt;0 then s:='Hidden';<br>&nbsp; if(attr and faReadOnly)&lt;&gt;0 then s:=s+'Read-Only';<br>&nbsp; if(attr and faSysFile)&lt;&gt;0 then s:=s+'System';<br>&nbsp; if(attr and faArchive)&lt;&gt;0 then s:=s+'Archive';<br>&nbsp; Label1.Caption:=s; <br>end;<br>---------------------------<br>&nbsp; &nbsp; 要想设置某个文件的属性,将你想要改变的文件名和要改的属性传递到函数FileSetAttr。每种属性都在SysUtils单元中定义了一个名称。要设置某个文件的属性,请您跟着做下去:<br><br>Attributes := Attributes or faSystem; <br><br>//也可以同时设置几个属性: <br><br>Attributes := Attributes and not (faReadOnly or faHidden); <br>--------------------------- <br>//另外,为了改变文件属性,可以使用下面的返回值。<br>&nbsp; &nbsp; &nbsp;+----------------------------------+<br>&nbsp; &nbsp; &nbsp;| 返回值 | 文件属性 |<br>&nbsp; &nbsp; &nbsp;+----------------------------------+<br>&nbsp; &nbsp; &nbsp;| 128 | Normal |<br>&nbsp; &nbsp; &nbsp;| 1 | Read Only |<br>&nbsp; &nbsp; &nbsp;| 2 | Hidden |<br>&nbsp; &nbsp; &nbsp;| 4 | System |<br>&nbsp; &nbsp; &nbsp;| 32 | Archive |<br>&nbsp; &nbsp; &nbsp;+--------------+-------------------+ <br><br>调用示例:我们将用到如下代码<br><br>FileSetAttr('C:/Autoexec.bat',2);{隐藏} <br>FileSetAttr('C:/Autoexec.bat',3);{隐藏、只读。FileGetAttr 返回值3}<br><br>投稿人:grhunter  <br>2.//删除文件或目录<br>uses Windows,SysUtils,Classes,FileCtrl,ShellAPI;<br><br>{<br>CanUndo =True,表示把文件或目录删除到回收站(默认方式)<br>&nbsp; &nbsp; &nbsp; &nbsp; =False,表示真正删除<br>}<br>function DelFD(const Name:String;CanUndo:Boolean=True):Boolean;<br>var<br>Fo:TSHFileOpStruct;<br>begin<br>if not JudgeFDExists(Name) then<br>&nbsp;Raise Exception.Create('Cannot find the file or directory.')<br>else<br>begin<br>&nbsp;FillChar(Fo,SizeOf(Fo),0);<br>&nbsp;with Fo do<br>&nbsp;begin<br>&nbsp; Wnd:=0;<br>&nbsp; wFunc:=FO_DELETE;<br>&nbsp; pFrom:=PChar(Name+#0);<br>&nbsp; pTo:=#0#0;<br>&nbsp; if CanUndo then fFlags:=FOF_AllOWUNDO+FOF_NOCONFIRMATION<br>&nbsp; else fFlags:=FOF_NOCONFIRMATION+FOF_SILENT;<br>&nbsp;end;<br>&nbsp;Result:=(SHFileOperation(Fo)=0);<br>end; <br>end;<br>
 
谢谢bjaman,目录怎么设置属性呢?
 
文件屬性常量補充:<br>.faReadOnly :只讀文件<br>.faHidden &nbsp; :隱藏文件<br>.faSysFile &nbsp;:系統文件<br>.faVolumeID :卷標文件<br>.faDirectory:目錄 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;&lt;======== &nbsp;注意這個!<br>.faArchive &nbsp;:歸檔文件<br>.faAnyFile &nbsp;:任意文件<br>以上均可用FileGetAttr()函數來得到,也可以用FileSetAttr()函數來設置屬性.目錄可作為文件等同處理.
 
后退
顶部