|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
2003-10-12, 01:16 PM | #1 |
榮譽會員
|
flashfxp 的貯列的站點 編輯
flashfxp 的貯列的站點 編輯
很多人用flashfxp下載ftp上的內容, flashfxp的貯列的用途很大,可以把要下載的內容放到貯列中, 然後就可以讓flashfxp 自動下載,自己可以去做別的事情,不需要 盯著ftp服務器。這種情況需要有ftp服務器的既可以下載又可以瀏覽的帳號。 但是 有些ftp服務器為了適應大流量的下載,瀏覽和下載的帳號不同, 瀏覽的帳號不能下載,而下載的帳號不能瀏覽目錄列表, 這時很多人用flashfxp以瀏覽帳號瀏覽,而用flashget以下載帳號下載, 具體來說就是 從flashfxp 中拷貝url ,而用flashget 的批量下載的方式下載, 對於不符合批量下載的檔案名,就只能一個一個的拷貝了。 以前我就是這麼做的,比較麻煩。 後來我就在flashfxp 中修改站點的帳號, 就是瀏覽的時候用瀏覽帳號,把要下載的文件加入到貯列中, 下載的時候把站點的帳號修改為下載帳號, 這樣就可以下載帳號下載貯列裡的文件了。 由於經常這樣切換帳號,在下載帳號和瀏覽帳號區別很大時,也比較麻煩 現在我是這樣做的,在flashfxp 的通訊錄裡面對於同一個ftp的不同功能的帳號 分別加入不同的條目,如ftpaaa,我就首先加入一個 ftpaaalist 用於瀏覽,然後加入一個ftpaaadown用於下載。 用ftpaaalist 產生下載貯列,然後把貯列中的站點名字從ftpaaalist修改為 ftpaaadown,這樣就可以不需要頻繁修改flashfxp的通訊錄了。 儘管flashfxp 本身對於貯列的管理已經比較成熟,方便,但是它不能直接修改 貯列中的站點名字,於是我就寫了一個小程序,專門修改fxp的貯列文件。 用法: fxpque 貯列檔案名 [新的站點名] 可以有兩個參數或者一個參數,只有一個參數時,是顯示貯列裡面的站點名字, 兩個參數時是把貯列裡面的站點名字修改為新的站點名. 下面是來源碼,在win2k3下 vs.net 2003 vc7編譯通過.附件裡是編譯好的文件. // FxpQue.cpp : Defines the entry point for the console application. // #include <iostream> #include <tchar.h> int AnalyseQue(char *pQue,int* pSiteStrBegin,int* pSiteStrLen) { char *p=pQue; if (p==NULL) return -1; p=strstr(p,"\001\002"); if ( p==NULL) return -1; p++; p++; while (*p==0x7f) { p=strstr(p,"\x1e\x20"); if ( p==NULL) return -1; p++; p++; } int SiteStrBegin=p-pQue; p=strstr(p,"\001\002"); if ( p==NULL) return -1; int SiteStrLen=p-pQue-SiteStrBegin; *pSiteStrBegin = SiteStrBegin; *pSiteStrLen = SiteStrLen; return 0; } int SetQueSite(char *pQue,int SiteStrBegin,int SiteStrLen,char *pNewQue,char *pSite) { memcpy(pNewQue,pQue,SiteStrBegin); pNewQue+=SiteStrBegin; *pNewQue=0; strcat(pNewQue,pSite); strcat(pNewQue,pQue+SiteStrBegin+SiteStrLen); return 0; } int SetFxpQue(char *quefilename,char *strSite) { char buffer[1024]; char bufferNew[1024]; char filenamenew[256]; FILE * fpfile=NULL; FILE * fpfileNew=NULL; fpfile =fopen(quefilename,"r+"); if ( fpfile ==NULL) { printf("error : can not open queue file %S\n",quefilename); return 0; } strcpy(filenamenew,quefilename); strcat(filenamenew,".new"); fpfileNew =fopen(filenamenew,"w+"); if ( fpfileNew==NULL) { printf("error : can not write new queue file %S\n",filenamenew); return 0; } while ( fgets(buffer,1024,fpfile)!= NULL) { int ret ,SiteStrBegin,SiteStrLen; ret =AnalyseQue(buffer,&SiteStrBegin,&SiteStrLen); if (ret != 0) continue; SetQueSite(buffer,SiteStrBegin,SiteStrLen,bufferNew,strSite); fprintf(fpfileNew,"%s",bufferNew); } fclose(fpfile); fclose(fpfileNew); remove(quefilename); rename(filenamenew,quefilename); return 0; } int ShowFxpQue(char *quefilename) { char buffer[1024]; FILE * fpfile=NULL; fpfile =fopen(quefilename,"r+"); if ( fpfile ==NULL) { printf("error : can not open queue file %S\n",quefilename); return 0; } while ( fgets(buffer,1024,fpfile)!= NULL) { int ret ,SiteStrBegin,SiteStrLen; ret =AnalyseQue(buffer,&SiteStrBegin,&SiteStrLen); if (ret != 0) continue; buffer[SiteStrBegin+SiteStrLen] =0; printf("%s\n",buffer+SiteStrBegin); } fclose(fpfile); return 0; } int _tmain(int argc, _TCHAR* argv[]) { char strSite[256]; if (argc <2 ) { printf("Usage:\n" "FxpQue QueFile NewSiteName\n" "OR \n" "FxpQue QueFile\n" ); return 0; } if (argc ==3 ) { strcpy(strSite,argv[2]); SetFxpQue(argv[1],strSite); } if (argc==2 ) ShowFxpQue(argv[1]); return 0; } by lyh728 |
送花文章: 3,
|
|
|
相似的主題 | ||||
主題 | 主題作者 | 討論區 | 回覆 | 最後發表 |
CoolEdit 教程 | psac | 多媒體影音轉檔燒錄技術文件 | 7 | 2006-08-08 11:38 AM |
非線性編輯與線性編輯之比較與使用 | psac | 多媒體影音轉檔燒錄技術文件 | 0 | 2005-05-08 10:02 AM |
小精靈字幕系統使用說明書 | psac | 多媒體影音轉檔燒錄技術文件 | 0 | 2004-02-04 06:28 PM |
Sonic Foundry Vegas 4.0 新手寶典之一概貌一覽 | psac | 應用軟體使用技術文件 | 0 | 2004-02-03 04:57 PM |
燒錄軟體Ahead Nero 6 | psac | 多媒體影音轉檔燒錄技術文件 | 2 | 2003-11-10 03:51 PM |