全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:838
推到 Plurk!
推到 Facebook!

设置了文件属性,但结果出问题

答題得分者是:dllee
bigdogchina
版主


發表:238
回覆:523
積分:312
註冊:2003-04-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-18 12:56:14 IP:211.162.xxx.xxx 未訂閱
大大们好,小弟的问题如下: 在窗体上放4个CheckBox和1个Button,它们的Caption分别为: CheckBox1->Caption = "隐藏"; CheckBox2->Caption = "只读"; CheckBox3->Caption = "系统"; checkBox4->Caption = "存档"; Button1->Caption = "设置属性"; 然后代码如下:
#include     void __fastcall TForm1::Button1Click(TObject *Sender)
{
        AnsiString sPath = "C:\\Test.txt";            int Attr[4] = {faHidden,faReadOnly,faSysFile,faArchive};            if(CheckBox1->Checked)
        {
            FileSetAttr(sPath,Attr[0]);
        }            if(CheckBox2->Checked)
        {
            FileSetAttr(sPath,Attr[1]);
        }            if(CheckBox3->Checked)
        {
            FileSetAttr(sPath,Attr[2]);
        }            if(CheckBox4->Checked)
        {
            FileSetAttr(sPath,Attr[3]);
        }
}
现在的问题是我选择了多个属性后,可是最后的结果却只是"存档"属性.我设置了断点进行观察,发现每个函数都是执行了的啊,但为什么结果还是这样的呢?< >,恳请您能点拨一下我,谢谢!!!< > 人生在勤,不索何获?
------
人生在勤,不索何获?
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-18 13:26:30 IP:61.231.xxx.xxx 未訂閱
引言: 大大们好,小弟的问题如下: 在窗体上放4个CheckBox和1个Button,它们的Caption分别为: CheckBox1->Caption = "隐藏"; CheckBox2->Caption = "只读"; CheckBox3->Caption = "系统"; checkBox4->Caption = "存档"; Button1->Caption = "设置属性"; 然后代码如下:
#include     void __fastcall TForm1::Button1Click(TObject *Sender)
{
        AnsiString sPath = "C:\\Test.txt";            int Attr[4] = {faHidden,faReadOnly,faSysFile,faArchive};            if(CheckBox1->Checked)
        {
            FileSetAttr(sPath,Attr[0]);
        }            if(CheckBox2->Checked)
        {
            FileSetAttr(sPath,Attr[1]);
        }            if(CheckBox3->Checked)
        {
            FileSetAttr(sPath,Attr[2]);
        }            if(CheckBox4->Checked)
        {
            FileSetAttr(sPath,Attr[3]);
        }
}
现在的问题是我选择了多个属性后,可是最后的结果却只是"存档"属性.我设置了断点进行观察,发现每个函数都是执行了的啊,但为什么结果还是这样的呢?< >,恳请您能点拨一下我,谢谢!!!< > 人生在勤,不索何获?
這是一定的,因為以「最後設定值為準」,而您最後設定的正好是 faArchive。 請改成:
        int Attr[4] = {faHidden,faReadOnly,faSysFile,faArchive};
        int FAttr=0;            if(CheckBox1->Checked)
            FAttr = FAttr | Attr[0];            if(CheckBox2->Checked)
            FAttr = FAttr | Attr[1];            if(CheckBox3->Checked)
            FAttr = FAttr | Attr[2];            if(CheckBox4->Checked)
            FAttr = FAttr | Attr[3];            FileSetAttr(sPath,FAttr);
沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
bigdogchina
版主


發表:238
回覆:523
積分:312
註冊:2003-04-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-18 16:59:46 IP:211.162.xxx.xxx 未訂閱
非常感谢dllee大大精彩的回答.我还想再向您请教一个问题: 比如得到了一个目录的路径以后,该如何来设置,获得该目录的相关属性呢? 是先要把该目录下的所有文件也做处理吗? 人生在勤,不索何获?
------
人生在勤,不索何获?
系統時間:2024-05-02 11:32:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!