C# FTP命令一覽
帶有星號的命令一般很少使用,所以往往在具體實現中不支持。
  1. ABOR      放棄傳輸
  2. *ACCT     某些系統將帳號和用戶與文件系統相關聯
  3. *ALLO     為即將傳送的文件分配空間。後面攜帶的參數來確定字節數
  4. *APPE     將文件附加到已經存在的文件後面
  5. CDUP       在遠程系統上將當前目錄切換到上級父目錄
  6. CWD        改變遠程系統的工作目錄
  7. DELE        刪除遠程系統的文件
  8. HELP       讀取服務器的幫助信息,如:支持的命令的列表
  9. LIST        在一個新建立的數據連接上發送當前工作目錄下的文件名列表
  10. MKD      創建目錄
  11. MODE    指定傳輸模式,可攜帶的參數是:S、B或 C.
  12. NLST     在一個新建立的數據連接上發送一個當前目錄下的“完全”的目錄列表
  13. NOOP   空操作,防止連接斷掉
  14. PASS     提供一個用戶登錄密碼,必須立即跟隨在USER命令後
  15. *PASV   指定服務器數據傳輸過程監聽等待客戶端的數據連接連接建立請求
  16. PORT     指定客戶端監聽等待服務器端建立的連接的端口號
  17. PWD     顯示服務器端的當前工作目錄名
  18. QUIT     退出登錄並終止連接
  19. *REIN    重新初始化,退出登錄但是並不斷開連接,後面必須隨後發出一個新的USER命令
  20. *REST    從服務器的一個標識處重新開始傳輸
  21. RETR      從遠程系統取回一個文件
  22. RMD       刪除一個目錄
  23. *RNFR    指定要被命名的文件的老的路徑名,隨後必須是一個RNTO命令
  24. *RNTO   指定要被命名的文件的新的路徑名
  25. *SITE     站點特有的服務器提供的服務
  26. *SMNT   結構加載,提供一個文件系統結構的遠程系統路徑名 27. *STAT 狀態信息
  28. STOR     上載一個文件到服務器上,若文件已經存在則覆蓋
  29. *STOU  上載一個文件到服務器上,不覆蓋已經存在的文件
  30. STRU     指定文件結構,參數可以是F、R或P.
  31. *SYST   報告遠程系統的操作系統類型
  32. TYPE     指定文件類型,參數可以是A、E、I、L只有TYPE A和TYPE I常用

createps 發表在 痞客邦 留言(0) 人氣()

ascii: 設定以ASCII方式傳送文件(缺省值) 
bell: 每完成一次文件傳送,報警提示. 
binary: 設定以二進制方式傳送文件. 
bye: 終止主機FTP進程,並退出FTP管理方式. 
case: 當為ON時,用MGET命令拷貝的文件名到本地機器中,全部轉換為小寫字母. 
cd: 同UNIX的CD命令. 
cdup: 返回上一級目錄. 
chmod: 改變遠端主機的文件權限. 
close: 終止遠端的FTP進程,返回到FTP命令狀態, 
所有的宏定義都被刪除. 
delete: 刪除遠端主機中的文件. 
dir [remote-directory] [local-file] 
列出當前遠端主機目錄中的文件.如果有本地文件,就將結果 
寫至本地文件. 
get [remote-file] [local-file] 
從遠端主機中傳送至本地主機中. 
help [command] 
輸出命令的解釋. 
lcd: 改變當前本地主機的工作目錄,如果缺省,就轉到當前用戶的HOME目錄. 
ls [remote-directory] [local-file] 
同DIR. 
macdef: 定義宏命令. 
mdelete [remote-files] 
刪除一批文件. 
mget [remote-files] 
從遠端主機接收一批文件至本地主機. 
mkdir directory-name 
在遠端主機中建立目錄. 
mput local-files 
將本地主機中一批文件傳送至遠端主機. 
open host [port] 
重新建立一個新的連接. 
prompt: 交互提示模式. 
put local-file [remote-file] 
將本地一個文件傳送至遠端主機中. 
pwd: 列出當前遠端主機目錄. 
quit: 同BYE. 
recv remote-file [local-file] 
同GET. 
rename [from] [to] 
改變遠端主機中的文件名. 
rmdir directory-name 
刪除遠端主機中的目錄. 
send local-file [remote-file] 
同PUT. 
status: 顯示當前FTP的狀態. 
system: 顯示遠端主機系統類型. 
user user-name [password] [account] 
重新以別的用戶名登錄遠端主機. 
?: 同HELP. 
FTP使用技巧 
FTP(文件傳輸)和E-mail(電子郵件)、Telnet(遠程登錄)一樣,是 
Internet的三大主要功能之一。因為使用頻繁,用戶往往會遇到各種 
各樣的問題,合理利用FTP命令的初始化文件.netrc,使運行FTP後自動 
執行某些FTP的內部命令,可有效地克服各種使用中的不便,極大地方 
便FTP的使用者。 
·netrc中應包含的基本命令 
FTP中有幾十個命令,在.netrc中應該設置的大致有如下幾條: 
1.default login<login_name>password<password> 
在Internet中,存在大量的匿名ftp帳戶,用戶在不同的主機間頻 
繁登錄anonymous帳戶,輸入自己的電子郵件地址作為口令,這種輸入 
極其繁瑣,完全有必要利用.netrc文件,在進入ftp時自動完成該過程 
。 
2.binary 
許多用戶在下載大量文件之後才意識到下載的文件是二進制文件 
,而自己卻是使用ascii方式傳輸,使下載文件無法使用,做了許多無用 
功。在.netrc文件中提前將傳輸方式設置為binary,完全可避免出現 
上述情況。 
3.runique 
使用Internet的用戶都知道,在浩如煙海的文件中,有大量同名文 
件,如readme、index等,如果將同名文件下載到同一目錄,則新傳的文 
件會覆蓋原同名文件。為了使具有潛在重要性的文件不至於被意外覆 
蓋,也需要在.netrc文件中,設置runique參數防止上述錯誤。 
4.prompt off 
使用ftp時,經常會用到mget或其它需要確認的ftp命令,將這種確 
認過程取消,可大大方便使用者。 
5.hash on 
ftp中的hash命令,使得在進行文件傳輸時,每傳輸1千字節,在屏 
幕上顯示一個"#"號,用戶通過觀看屏幕上的"#"號,可以很直觀地看到 
傳輸速度的快慢,以及文件的傳輸完成情況,以決定進一步的操作。 
6.idle 7200 
目前國內的Internet專線速率普遍偏低,用戶數卻在急劇膨脹,所 
以用ftp傳輸銷大一些的文件時,經常會因為線路擁塞而斷線,致使ftp 
進程中斷,為了減少因斷線而反覆登錄的次數,需將idle命令的參數設 
置為最大(一般為7200秒)。 
7.macdef<macro_name> 
macdef定義一個宏,macro_name為宏定義的名稱。在macdef行下, 
可輸入任何有效的ftp命令,並以空行結束宏定義,執行時只需在宏名 
前加"$"號即可。如果宏名定義為init,則該宏命令在啟動ftp後自動 
加以執行,無需用戶輸入$ macro_name。 
·netrc的使用舉例 
1.用vi編輯器先編輯一個如下的文件: 
default login anonymous password user@my.site 
macdef init 
binary . 
runique . 
hash on . 
prompt off 
idle 7200 
(空行) 
第1行意為缺省情況下,進入anonymous帳戶,並以自己的電子郵件 
地址為口令;第2行至第8行定義了宏init,該宏中的所有5條命令將在 
進入ftp環境後立刻執行,第8行(空行)不可省略,否則為無效宏定義。 
2.利用.netrc可將用戶所需操作大大簡化,極大地提高工作效率 
。如,利用archie命令查找到文件xplaygizmo-1.0.gz在匿名ftp主機s 
unsite.unc.e-du的目錄/pub/packages/solaris/freeware下,用戶欲 
將該文件用ftp下載,只需用vi編輯器將archie的查找結果插入到.net 
rc文件空行之上,即增加下列三行: 
cd/pub/packages/solaris/freeware 
get xplaygizmo-1.0.gz 
bye 
(空行) 
運行ftp sunsite.unc.edu,即自動完成上述.netrc中的所有操作 
,無需任何人工干預。屏幕將顯示類似於下面的結果: 
Connected to sunsite.unc.edu. 
220 calzone FTP server(Version wu-2.4(38)Wed 0ct 2 09:30 
:40 EDT 1996)ready 
331 Guest login ok,send your complete e-mail address as 
password. 
230............. 
230 Guest login ok,access resrictions apply. 
200 Type set to I. 
Receive unique on. 
Hash mark printing on (1024 bytes/hash mark). 
Interactive mode off. 
200 Maximum IDLE time set to 7200 seconds 
cd/pub/packages/solaris/freeware 
250 CWD command successful. 
get xplaygizmo-1.0.gz 
200 PORT command successful. 
150 Opening BINARY mode data connection for xplaygizmo-1 
.0.gz(8753 bytes). 
######## 
226 Transfer complete. 
8753 bytes received in 50.8 secs(0.17 Kbytes/sec) 
221 Goodbye. 
缺省時,運行ftp命令將檢測用戶的HOME目錄中的.netrc文件,並 
自動加以執行,如果不想使用.netrc,可在ftp命令行中使用-n參數加 
以取消。

createps 發表在 痞客邦 留言(0) 人氣()

用MAX2009輪出2006.11版月的FBX
注意事項:
1.路徑全都要英文。
2.材質貼圖路徑用相對位置。在FBX檔案裡面直接改,可以用筆記本打開改,所以在存檔的時候必須選擇用Ascii存檔,
打開檔案: 搜尋材質的檔名"cube1.jpg"關鍵字,舉例如下:
    Video: 699166912, "Video::Map #1", "Clip" {
        Type: "Clip"
        Properties70:  {
            P: "Path", "KString", "XRefUrl", "", "D:\cube1.jpg"
        }
        UseMipMap: 0
        Filename: "D:\cube1.jpg"
        RelativeFilename: "cube1.jpg"
    }
改以下三個檔案位置 
  P: "Path", "KString", "XRefUrl", "", "D:\cube1.jpg"
  Filename: "D:\cube1.jpg"
  RelativeFilename: "cube1.jpg"
這個就是材質的位置,路徑要設定在模型的相對位置。
例如:模型放在Modes資料夾底下,材質放在Textures資料夾底下,那上面的路徑就改寫如下:
  P: "Path", "KString", "XRefUrl", "", "..\Textures\cube1.jpg"
  Filename: "..\Textures\cube1.jpg"
  RelativeFilename: "..\Textures\cube1.jpg"
 這樣你的模型應該就抓的到材質了。

createps 發表在 痞客邦 留言(0) 人氣()


     void 讀取檔案並顯示大小()
        {
            // Make a reference to a directory.
            DirectoryInfo di = new DirectoryInfo("c:\\");
            // Get a reference to each file in that directory.
            FileInfo[] fiArr = di.GetFiles();
            // Display the names and sizes of the files.
            Console.WriteLine("The directory {0} contains the following files:", di.Name);
            int i = 0;
            foreach (FileInfo f in fiArr)
            {
                ListViewItem LM = new ListViewItem(f.Name);
                LM.SubItems.Add(f.Length.ToString());//byte
                decimal a = Math.Round((decimal)f.Length / 1024, 5);//K byte
                LM.SubItems.Add(a.ToString());
                a = Math.Round((decimal)f.Length / (1024 * 1024), 5);//M byte
                LM.SubItems.Add(a.ToString());
                a = Math.Round((decimal)f.Length / (1024 * 1024 * 1024), 10);//G byte
                //a = Math.Round(1073741824m / (1024 * 1024 * 1024), 10);//G byte
                LM.SubItems.Add(a.ToString());
                this.list.Items.AddRange(new ListViewItem[] { LM });
                Console.WriteLine("The size of {0} is {1} bytes.", f.Name, f.Length);
            }
        }

createps 發表在 痞客邦 留言(0) 人氣()

 Dim 下一頁 As mshtml.HTMLAnchorElement = Nothing
  For Each objElement As mshtml.HTMLAnchorElement In frm1.contentWindow.document.getElementsByTagName("A")
         If objElement.innerText IsNot Nothing AndAlso objElement.innerText.Trim() = "下一頁 ▼" Then
                 下一頁 = objElement
                 瀏覽內頁(下一頁)
                 Exit For
         End If
  Next

createps 發表在 痞客邦 留言(0) 人氣()

泛型
減少"型別轉換的時間"大大增加程式效能
種類1:

createps 發表在 痞客邦 留言(0) 人氣()

介面使用
當你有一個副專案要用到主專案裡面的類別的函式或其他時,可以使用介面:
以下的範例要在其他專案存取和改變主專案的TextBox1的Text值.要的注意的是:兩個專案都要用參考"介面專案"
主專案,宣告要讓介面存取的值函式:==========================
using 介面_命名空間;
using 實作_命名空間;
namespace 測試
{
    public partial class Form1 : Form , 介面

createps 發表在 痞客邦 留言(0) 人氣()


著色器(Shader):
    Shader可以直接在GPU上執行的指令集,依據功能的不同,可以劃分成處理3D頂點資料的Vertex Shader和處理螢幕像點資料的Pixel Shader。
    對XNA程式來說,Shader是一個小程式,用來撰寫繪圖3D物件所產生的效果,Shader指令經過編譯之後,直接載入到顯示卡上的GPU來執行。
    而GPU實際可以執行的其實是類似組合語言這種低階的Shader指令,而有些Shader是用較為高階的語言寫成,類似C語言的語法來撰寫(例如DirectX支援的HLSL或是Open GL支援的GLSL),這類的Shader需要DirectX先編譯成低階的Shader指令,然後再交由GPU執行。而XNA程式就是使用HLSL來撰寫遊戲效果。
Shader歷史:
    微軟在DirectX7發表的新技術「硬體轉換與投影」(Hardware transform and lighting),這個技術主要是將頂點轉換和燈光的計算將原本CPU執行的工作轉交給GPU來執行,DirectX7的API將一些複雜的狀態,像是燈光、紋理等,都運用在一個Draw函數裡。
    當硬體貼圖和打光被廣泛的運用在個人電腦上的時候,卻也產生了一個缺點,這些燈光的運算和顯示畫面早已經做好在GPU的硬體上了,以致他們顯現的東西都很相近,雖然提升整體的品質,但卻沒有新的東西可以展現。
    DirectX8是微軟第一個提供的可程式化的Shader,這意味著程式設計師可以為自己的程式撰寫一個屬於自己的Shader程式,但由於早期Shader程式都是用一些組合語言來撰寫的,因此較不方便,所以後來微軟就發表了HLSL新的語言,主要是運用類似C的語法來撰寫程式,而不需要去運用到較低階的語言。
    雖然還有其他用來撰寫shader的高階語言,像是OpenGL使用的GLSL (Open GL Shading Language) 或NVidia使用的 Cg 語言等這些都是,但HLSL只能在XNA或是DirectX使用。
XNA的Shader:
    XNA提供了Effect這個類別來處理大部分繪圖著色相關的工作,裡面有提供簡單的Effect類別:BasicEffect。
    使用時必須注意到如果是使用XNA內建的BasicEffect來繪製模型的話,就無需將此三個矩陣變數相乘,只要分別指定到BasicEffect遺傳下來的物件其中的World、View、Projection成員變數即可,它的Shader檔會自動將此三個矩陣變數相乘,也因此當我們要自己撰寫Shader檔案的話,我們就必須在shader(.fx)檔案裡適時將此三個由程式傳過來的三個矩陣做相乘的動作才可以。


createps 發表在 痞客邦 留言(0) 人氣()

C# 程式所在地 根目錄
string 根目錄 = Environment.CurrentDirectory + "\\";

createps 發表在 痞客邦 留言(0) 人氣()


以前我都沒想過可以用 Regular Expressions 驗證複雜格式的密碼,原來可以用 Regular Expression 中的群組建構式達成這個目的,例如說密碼的條件是這樣:
至少有一個數字
至少有一個小寫英文字母
至少有一個大寫英文字母
字串長度在 6 ~ 30 個字母之間
那麼你的 Regular Expression 可以長這樣:
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,30}$
在這段 Regular Expression 的語法中值得注意的就是 (?=.*\d) 這段語法,這段於法又稱做「右合樣 (Positive Lookahead)」,右合樣(或左合樣)語法所佔用的寬度為 0,也就是說這段語法本真不會佔用比對的字元,僅僅只是 Regular Expression 中的一種「判斷式」而已,右合樣 (Positive Lookahead)會判斷右邊緊接著的字元是否符合比對條件,如果符合條件才會繼續比對下去。
所以剛剛這段於法的解釋大致可以這樣說明:
(?=.*\d) 與 (?=.*[a-z]) 與 (?=.*[A-Z]) 寬度都會是零,所以整個字串比對會以 .{6,30} 為主,但比對之前會分別比對 (?=.*\d) 與 (?=.*[a-z]) 與 (?=.*[A-Z]) 這三個判斷式,都判斷成功才會進行 .{6,30} 的比對。所以 (?=.*\d) 的 .*\d 就是說右邊的文字中一定要出現一個數字符號,(?=.*[a-z]) 的 .*[a-z] 就是說右邊的文字中一定要出現一個小寫字母,(?=.*[A-Z]) 的 .*[A-Z] 就是說右邊的文字中一定要出現一個大小字母,最後才會比對 .{6,30} 也就是說比對字串的長度必須在 6 ~ 30 個字的任意字元。
如果你的條件修改成:
至少有一個數字
至少有一個大寫或小寫英文字母
至少有一個特殊符號
字串長度在 6 ~ 30 個字母之間
那麼你的 Regular Expression 可以長這樣(以 C# 作範例):
Regex regex = new Regex(@"^(?=.*\d)(?=.*[a-zA-Z])(?=.*\W).{6,30}$");
這樣一來你知道如何融會貫通了嗎?^_^

createps 發表在 痞客邦 留言(0) 人氣()

同步發表於Google Blogger
C# 除法顯示小數點
decimal result = 100 / 1000; // result = 0;
需要保留小數點,可以如下
decimal result = 100m / 1000;
m代表decimal.
如果是變量要如何處理呢?這是需要用到Math.Round()
int x= 120;
int y= 100000;
decimal result = (decimal)x / y; // (decimal)x/ y 表示把 x 轉換成decimal再做除法運算,int 除 int 是會丟失小數點的。
不過這樣的小數點後面的數太多了,需要處理下,這時候需要Math.Round()
decimal result = Math.Round((decimal)x/ y,2);
後面的2表示保留小數點後2位小數.這樣ok啦:)

createps 發表在 痞客邦 留言(0) 人氣()

MWSnap001.jpg
update:
最近發現了一招新的方法,可以把專案裡的全部檔案都替換掉,而且不用改到專案的任何資料。
"就是直接把新的檔案覆蓋到專案對應的資料夾裡面的檔案",這樣就不用改專案的資料,就直接換新的,不過要注意的事,如果有新的檔案,還是要乖乖的把檔案拉到專案裡面。
 

createps 發表在 痞客邦 留言(0) 人氣()

Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。