當前位置:首頁 » 文件傳輸 » 國產TS下載ftp
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

國產TS下載ftp

發布時間: 2022-12-17 20:35:38

『壹』 大家聽聽這英文是什麼歌,下載地址http://yysk.tsyz.net/music/You%20were%20there.mp3,我下載不到歌詞

樓上的,歌詞完全對不上啊
應該是這個吧:
You Were There
by Babyface

Time passes, the world changes
But I'm still the same ole' kid
And your jokes still bring me laughter
As if you still were here
And it hurts
When I smile
'Cause my heart still remembers
When you were around

'Cause you were there
When no one was
Just when I thought nobody cared
You showed me love
'Cause you were my friend
You always told me
And I am still here
Because you were there

So precious, small treasures
A time when truth was innocent
True friendship, was all we were after
A place where kids could still be kids
And it hurts
But I'm glad
'Cause at least I was blessed
To have you as my friend

[HOOK]

You're my best friend
There are no accidents
God has a plan for everyone
And he brought you in my life
To show me what a good friendship was

就是babyface(娃娃臉)唱的,下載地址:http://ftp.116.com.cn/pub/9sky/wma8/128/娃娃臉,Babyface_christmas with babyface/10.you were there.wma

babyface的一資料(有興趣就看看吧),呵呵

流行音樂界最炙手可熱的天王詞曲創作與製作人兼歌手Babyface ,其在短短的數年內,便已為自己與其他藝人共造就了115首流行與 R&B榜的暢銷曲,其中含括了115首R&B 榜Top 10、50首流行榜Top 10 ,以及16首的流行榜冠軍曲,同時,他亦已贏得了九座葛萊美音樂獎 的肯定與榮耀。

在與Babyface所合作過的藝人名單中,雖觸目所及的盡是些樂壇最赫赫有名的頂尖人物,包括了Michael Jackson,Mariah Carey, Celine Dion,Whitney Houston,Madonna,Boyz II Men,Eric Clapton 以及Toni Braxton等,但其中也不乏一些當紅藝人團體是由他一手所捧紅的,這些原就具備潛力與實力的藝人們,有些是初出茅廬毫無背景可言(如:TLC,Jon. B,Pebbles,Toni Braxton、Karyn White, Paula Abl ,以及Babyface兄長所組的樂團 After 7 )、或是面臨瓶頸轉型的關鍵時機(如:Whitney Houston,SheenaEaston TheWhispers)、或是脫隊自立門戶之初變數難料(如:Bobby Brown, Johnny Gill),卻都因受到Babyface賞識,經由他參與專輯作品的創作、製作或兩者兼具,且在他的金字招牌背書與力薦下,一舉成名為樂壇的新生代巨星或穩下其既有之江山!截至1996年,他所經手過的單曲與專輯在全球銷售已分別創下了2600萬與7200萬張的驚人紀錄了,就連專業音樂雜志界的龍頭老大"滾石雜志"都尊稱他為"音樂界最具可能性的最佳詞曲作家兼製作人"!

本名為Kenneth Edmonds的Babyface,1959年4月10日出生於美國印第安那州的首府Indianapolis市,是家中的六兄弟之一。Babyface在六年級時首次有了表演經驗,是參與他兄長Melvin的樂團在高中舞會上的演出,七年級時譜寫出他生平的第一首歌曲,之後又陸續加入好些 個校際R&B樂團擔任主唱與吉他手(現今的他亦精擅於鍵盤樂器),在升上高中前,Babyface便已開始在中西部各地的俱樂部以及飯店大廳內做表演。

1979年,Babyface組了一支放克搖滾樂團Manchild,並正式展開他 的職業音樂生涯。Manchild在Chi-Sound旗下共錄制了兩張專輯,口碑不惡。

1981年,一個Babyface生命轉折點出現的年份。當Babyface在Michigan 飯店大廳表演的期間,接到了一通邀約的電話,請他加入一個來自俄亥俄州辛辛那提市名叫The Deele的樂團,因而與該團的鼓手及詞曲作家 Antonio "L.A." Reid結識,兩人一拍即合,自此成為密友及工作夥伴。 「打從一開始,我倆的個性就達到完全的互補與相容。」Babyface回憶道。 「我本身是個安靜的人,而L.A.則十分躍」Babyface與L.A.兩人共同擔負起為The Deele 譜詞、填曲並規劃音樂生涯的重責大任,並開始參與製作方面的工作(雖然那時他們對製作一事尚懵懵懂懂),音樂才華得以初次盡情展現。另外一提的是,「Babyface」這個別號,亦是在那期間內由另一位俄亥俄州的樂手Bootsy Collins,率先此別名來(稱有著稚嫩面容的他),並自此一直沿用下來。

1983年,The Deele這支六人樂團與 Solar 唱片公司簽約,並發表了 他們的首張專輯《Street Beat 》,並在1984年間締造了兩首排行名曲 「Body Talk」「Just My Luck」。1985年,他們又成功地出版了他們自 行擔任製作《Material Thangz 》專輯,不過真正讓他們在音樂版圖中占 下一席之地,則是起於1987年的專輯《Eyes Of A Stranger》。

《Eyes Of A Stranger》這張專輯不僅成為The Deele排行最高的專輯 ,由Babyface所譜寫並在橋段部份獻聲的單曲「Two Occasions」,更在 1988年間成為Billboard流行榜Top 10、R&B榜#4的經典名曲。許多人也許不知道,曾獲葛萊美"節奏藍調最佳男歌手"獎項的Babyface,在加入The Deele樂團早期,並不認為自己能做個襯職的歌手,所以在The Deele的首張專輯中,他並未參與演唱,直到在第二張專輯中,演唱了自己所創作的 歌曲"Sweet November"之後,想法才隨之改變,甚至開始有了出個人專輯 的想法。Babyface的個人處女作"Lovers",同樣是發表於1987年初,很快即受到全美各大電台的好評,個人知名度亦由此開啟。

雖然忙著樂團與個人的發展,Babyface在這期間仍持續地與L.A. Reid 以及稍後的Daryl Simmons合作,為其他藝人量身打造麯子與製作專輯。 這個音樂小組最先的成功作品,是為The Whispers所打造的流行榜#7及R&B 榜冠軍的單曲「Rock Steady」,且自此之後,即不斷地為各藝人團體所爭相邀請跨刀,而排行榜上亦不斷出現他們的作品,且不只一次可看到兩人為不同的藝人所作的歌曲同時出現在Top 10內!

1989年,Babyface的個人第二張專輯《Tender Lover》發行。《Tender Lover》 專輯陸續產生了「It's No Crime 」「Tender Lover」「Whip Appeal 」 「My Kind A Girl」等四首排行榜Top 3 暢銷單曲,使得專輯銷售隨之突破兩百萬張,更將Babyface推上了天王巨星的行列。

雖然由於個人事業的繁忙,而使得Babyface不得不離開The Deele,但他與L.A.的合作卻並不因此受限,兩人甚至成立了一個名為Laface的唱片公司,因為他認為個人的歌唱生涯與和L.A.搭檔創作,是兩件不相沖突的 事,而兩者皆能兼顧並有很好的成績,更是他引以自豪的!做為喬治亞州亞特蘭大市的領導廠牌Arista唱片公司的分支機構的Laface唱片公司,不僅迅速地成為當地居首位的廠牌,更相繼於1992,1993,1994創造了TLC的三百萬張白金專輯《Oooooh...On The TLC Tip》,Toni Braxton的流行與節奏藍調雙料冠軍同名專輯,以及TLC的八百萬張超白金專輯 「Crazysexycool」,為流行與黑人音樂界引進了一股旺盛的新勢力!

1991年, 唱片公司為Babyface 推出了一張名為《A Closer Look 》的 精選專輯,依然不負期望地成為雙白金專輯,輯中收錄了他多首成名力作 ,其中尚有一首與Karyh White 共同詮釋的抒情佳作「Love Saw It 」, 和與靈魂女歌手Pebbles 合唱的情歌「Love Makes Things Happen」。

1992年,是Babyface極為成功且豐收的一年,由他為Boyz II Men所寫及製作的曲子「End Of The Road」,不僅破紀錄地蟬連Billboard單曲 榜冠軍13周,成為最暢銷的單曲之一外,更為他贏得了葛萊美"最佳R&B歌 曲"(與L.A.,Daryl Simmons分享)"最佳專輯製作人"(與L.A.分享)等獎項。無獨有偶地,Babyface為Boyz II Men製作譜寫的1994年暢銷單曲 「I'll Make Love To You」,亦再次打破其在1992年甫創下的新紀錄, 成為Billboard流行榜14周冠軍曲,並再度於1995年榮獲葛萊美"最佳R&B 歌曲"殊榮,此外BMI Award也頒發了"最佳歌曲"獎座給他,使他所收集到 的BMI 獎座數量已超過了40座!

1993年8月,Babyface出版了他的第三張錄音室個人專輯 《For The Cool In You》。該輯共推出了四首Top 10暢銷曲,分別是R&B榜 冠軍曲「For The Cool In You」、兩首R&B榜Top 10作品「Never Keeping Secrets」「And Our Feelings」以及流行榜#4名作「When Can I See You」 。「When Can I See You」這首旋律美麗的民謠靈魂抒情曲,已擁有超過50萬張的銷售紀錄,並成為Babyface流行榜上排行名次最高的金唱片單曲 。截至1994年11月的統計,《For The Cool In You》專輯已在全美銷售超過兩百萬張,獲雙白金榮耀。

同樣是在1993年間,,Babyface亦以雷霆萬鉅的姿態挖掘了女歌手 Toni Braxton,並為其製作了前述的同名冠軍專輯,專輯中由Babyface與L.A. Reid 合作的單曲「Another Sad Love Song」,及 「Breathe Again」都有絕佳的成績,Toni 並在隔年的葛萊美獎典禮中大放異彩,奪得最佳新進藝人,這不得不歸功於Babyface及 L.A. Reid的共同栽培。

盡管他的音樂周邊事業已達到如鑽石般璀燦的巔峰,但他回饋與關懷社會的心卻絲毫不因此而懈怠。1994年,Babyface自告奮勇出馬擔任以華盛頓市做為基地之"寄宿兒計劃"(Boarder Baby Project)的全國發言人 ,這個慈善計劃團體其宗旨是要幫助每年在各醫院產科病房所產生之數以千計的棄嬰,並為他們建了一間名為"藍色小屋"(The Little Blue House) 的居所,做為這些棄嬰的暫時居住地,提供他們一個穩定、健康且充滿愛的環境,直到他們被人收養。「我發誓會盡己能,」Babyface說。「去幫 助這些無法為自己說話的小嬰兒們。」為了支持自己的誓言,Babyface亦破例地於1994年11月12日,舉辦了他個人演藝生涯有史以來的第一場演唱會,來為興建"藍色小屋"的計劃籌款,稍後他亦召集了After 7,El DeBarge 等藝人團體,發起錄音計劃為"寄宿兒計劃"增加資金。

1994年12月27日,Babyface以明尼蘇達州的明尼亞波利斯市為起站, 展開一連串他個人的首次巡迴演唱,與他共同掛帥演唱的團體是Boyz II Men。」「Kenneth 'Babyface' Edmonds早已經在流行與節奏藍調音樂界為他自己建立了至尊的地位,」今日美國日報寫道。「如今他亦證實了自己是 位完美的藝人....Babyface為這場演唱會締造了一個最高水準與變化多端 的演出。」1995年1月,新聞周報則寫道:「Babyface可能會是流行樂最成 功的詞曲作家與製作人....似乎每個人都想擁有一片他破碎的心。」

1995年11月,Babyface首次擔綱電影原聲帶編制的作品《Waiting To Exhale》發行,完成了他認為是"任何詞曲作家與製作人都會嚮往之一生一 次的夢想之一。"原聲帶收錄了16首曲子,全部由Babyface製作,他並依照參與演唱的Whitney Houston,Toni Braxton,Aretha Franklin,Brandy, TLC,Mary J. Blige,SWB以及Patti LaBelle等女歌手團體的個性與特色 ,親自量身打造了15首歌曲的詞曲,如今這張原聲帶已成為流行榜五周冠 軍、R&B 榜10周冠軍專輯,銷售並已堂堂跨過7百萬張的七白金銷售紀錄。

1996年10月,Babyface發表他繼1993年的雙白金專輯《For The Cool In You》後的最新作品《The Day》,也是他個人的第四張錄音室專輯。《The Day》收錄有10首作品,除了首支單曲「This Is For The Lover In You」 是翻唱自Shalamar樂團的1981年名曲外,其餘九首作品仍是由Babyface與 人搭檔或獨力完成。人緣極好的Babyface,在此輯中亦邀來各方好友來與 他共襄盛舉,除了白金銷售排行Top10名曲「This Is For The Lover In You」 邀來LL Cool J助陣說唱,以及 Jody Watley等三位原 Shalamar團員共同 為他幕後配唱外,還有Mariah Carey獻聲與Kenny G薩克斯風演奏的另一首 排行Top10金曲「Everytime I Close My Eyes」,Eric Clapton參與吉他 演奏、建立Babyface跨足藍調樂界地標的「Talk To Me」以及Stevie Wonder 參與填詞譜曲與合音、探討婚姻暴力的「How Come,How Long」。此外, 輯中與專輯標題同名的「The Day (That You Gave Me A Son)」,則是他 為兒子Brandon的出世,獻給他妻子Tracey Edmonds(Yab Yum唱片公司的總裁)表達感恩與摯愛的作品,可謂是最能表露他私人情感且動人心弦之 作!"一首情歌中,你能在其旋律中發掘的情感要比詞句來得多。"Babyface 在11月5日接受洛杉磯時報的記者Robert Hilburn時便如此說道。"你只能 用一種方式寫下'我愛你',但音樂與聲音卻可以有上百萬種的變化,那就 是為什麽我們可以永遠寫情歌且可以不斷發現新方法去詮釋的原因。"此輯的排行最高成績為#6名,並在一年內銷售直直突破兩百萬張。

1997年初,第39屆葛萊美獎入圍名單揭曉,Babyface一舉囊括了12項 大獎的提名,打平了流行天王Michael Jackson所創下的紀錄,並於2月26 日的葛萊美獎頒獎典禮上,眾望所歸地贏得三項大獎。Babyface所獲的三 座獎項分別是"年度唱片"(以參與Eric Clapton的Top10單曲「Change The World」之製作而獲得),"最佳節奏藍調歌曲"(為Whitney Houston所譜 寫的流行榜與節奏藍調榜雙料冠軍電影主題曲「Exhale (Shoop Shoop)」),以及"年度製作人"(因所參與製作的15張專輯入圍本屆葛萊美獎)。

同樣是在1997年間,Babyface亦有了他生平第一次擔任電影長片監制的經驗,此部片名為"Soul Food",由George Tillman,Jr.所編劇導演, 並交由20世紀福斯電影公司在1997年9月26日上映。此部電影的原聲帶當然也是由Babyface所擔任製作,不僅迅速地獲得百萬張的白金銷售紀錄 ,並持續地待在排行榜Top 10以內,並已創造了兩首暢銷金曲,分別是 Total 的排行#16 作品「What About Us」,以及Milestone的排行 #23作 品「I Care 'Bout You」。

1997年9月25日,Babyface藉著應MTV音樂台Unplugged節目之邀、舉 行其首度的原音演唱會之機,特別邀請到一些以往較無機會合作的至親好 友們,以及多位他心目中最傑出的樂手到場,與他共同營造出一場具有俱 樂部風格般即興隨意且親切溫馨的原音演唱會。於是,Eric Clapton, Stevie Wonder與 Jodeci團中的Jojo,K-Ci兄弟檔等巨星摯友,以及Babyface 的兩位親兄弟、亦是著名節奏藍調團體After 7中的團員Kevon,Melvin… 等,皆到場助陣,眾星雲集!同年11月25日,Babyface的個人首張演唱會 專輯"MTV Unplugged NYC 1997"發行,此輯的所有內容,便是紀錄他在紐 約市曼哈頓中心Hammerstein大會廳所舉行的上述之原音演唱會的實況錄音 。11首精彩絕倫的作品中, 除了包括《Tender Love 》專輯中的排行#6暢銷 曲「Whip Appeal」,雙白金銷售專輯《The Day》中關懷婚姻暴力中受虐婦 女的「How Come,How Long」,以及感謝他妻子為其添子的 「The Day (You Gave Me A Son)」等4首個人經典代表作外,亦有他藉著此難得的機會,所現場重新演繹的多首由他為多位天王級藝人一手打造出來的暢銷曲。這些名聞遐邇的作品分別是Boyz II Men的13與14周超白 金冠軍單曲「End Of The Road」「I'll Make Love To You」,Whitney Houston的冠軍電影主題曲「Exhale (Shoop Shoop)」,Toni Braxton的 成名代表作「Breathe Again」,Michael Jackson的「Gone Too Sone」 等,另外,還有第39屆葛萊美音樂獎"年度歌曲""年度唱片"得主「Change The World」,精彩程度可想而知。

進入98年後的Babyface,除了繼續為一些樂壇歌手製作歌曲之外, 他也仍然持續為一些電影擔任主題曲及插曲創作或演唱的工作。其中最著 名的作品當屬他與英國著名歌手Des'ree對唱的Bruce Springsteen舊作 「Fire」,這首為電影"Hav Plenty"所作的主題曲由兩人演繹起來,由 原本的搖滾風格轉變為節奏藍調的輕松氣息。

而到年底之時,Babyface推出了他進入歌壇以來的第一張聖誕專輯《Christmas With Babyface》。這張同樣由Babyface 擔綱製作的專輯,這次還加入了流行樂壇當紅製作Walter Afanasieff (Celine Dion、Mariah Carey、Michael Bolton…)的鼎力相助。專 輯收錄多首大家耳熟能詳的聖誕名曲,像是:「Silent Night」、 「White Christmas」、「The Christmas Song」、「Winter Wonderland」 、「The Little Drummer Boy」…等等。Babyface為這些傳唱多年的名曲著上爵士與節奏藍調色彩的新裝,並與多位當前炙手可熱的爵士及 藍調樂手共同合作,為今年的聖誕添加溫暖愉悅的氣氛。此外,本張專輯還特別多加受錄了Babyface為電影"Simon Birch(一路上有你)"所創作、製作、編寫及演唱的主題曲「You Were There」,充滿溫馨的編曲與Babyface柔情的嗓音搭配出細致的多層次感受,與電影的勵志溫情內容交相呼應,更為今年聖誕節揉入甜蜜貼心的氣氛。

Babyface的輝煌之路仍然在繼續!

Babyface The Best Great Hits [Disc 1]

Baby Face - I Keep Calling
Baby Face - U Should Know
Baby Face - Still In Love With U
Baby Face - Every Time I Close My Eyes
Baby Face - Change The World
Baby Face - Where Will You Go
Baby Face - When Men Grow Old
Baby Face - I Love You Babe
Baby Face - Soon As I Get Home
Baby Face - This For The Lover In You
Baby Face - How Can U Be Down
Baby Face - Reason For Breathing
Baby Face - How Come,How Long
Baby Face - Whip Appeal
Baby Face - What If

Babyface The Best Great Hits [Disc 2]

Baby Face - It's No Crime
Baby Face - My Kinda Girl
Baby Face - Can't Stop My Heart
Baby Face - Where Will You Go(remix)
Baby Face - Give A Chance
Baby Face - Sunshine
Baby Face - For The Cool In You
Baby Face - Lady Lady
Baby Face - Never Keeping Secrets
Baby Face - Rock Bottom
Baby Face - And Our Feelings
Baby Face - Saturday
Baby Face - When Can I See You
Baby Face - Illusions
Baby Face - A Bit Old-Fashioned
Baby Face - You Are So Beautiful
Baby Face - I'll Always Love You

Babyface可說是現今西洋樂壇數一數二的王牌詞曲創作家與製作人,他譜寫、製作了無數排行金曲,也獲得許多音樂獎的肯定,其中包括了十項葛萊美獎。Babyface不但和Celine Dion、Mariah Carey、Madonna、Whitney Houston、Eric Clapton等知名藝人合作過之外,還捧紅了Pebbles、Karyn White、Toni Braxton、TLC等藝人團體。

Babyface職業音樂生涯的濫觴,可追溯至1979年他自組的樂團Manchild,此團錄過兩張專輯,表現平平。1981年,對Babyface來說,是事業上的轉戾點,他加入節奏藍調團體The Deele,結識團員Antonio "L.A." Reid,從此成為好朋友及工作夥伴。Babyface和Reid兩人也為其他藝人寫歌、製作,最有名的例子是在1987年為The Whispers打造出"Rock Steady",是該團七年內首支節奏藍調榜冠軍曲及成軍以來第一支打進流行榜前十名的歌曲。同年,兩人合力的暢銷曲"Girlfriend",也使Pebbles的歌唱生涯順利起飛。

Babyface在1987年發行的個人首張專輯「情人」(Lovers),來自各界的好評開始打響他的知名度。Babyface在這張專輯中用近似假聲的唱法,唱出他對愛情的觀感。趁著這次的重新發行,專輯中特別收錄三首不同版本的"Mary Mack"、"If We Try"和"Lovers",歌迷可以重新回味Babyface的處女作。

Babyface可說是現今西洋樂壇數一數二的王牌詞曲創作家與製作人,他譜寫、製作了無數排行金曲,也獲得許多音樂獎的肯定,其中包括了十項葛萊美獎。Babyface不但和Celine Dion、Mariah Carey、Madonna、Whitney Houston、Eric Clapton等知名藝人合作過之外,還捧紅了Pebbles、Karyn White、Toni Braxton、TLC等藝人團體。

Babyface職業音樂生涯的濫觴,可追溯至1979年他自組的樂團Manchild,此團錄過兩張專輯,表現平平。1981年,對Babyface來說,是事業上的轉戾點,他加入節奏藍調團體The Deele,結識團員Antonio "L.A." Reid,從此成為好朋友及工作夥伴。Babyface和Reid兩人也為其他藝人寫歌、製作,最有名的例子是在1987年為The Whispers打造出"Rock Steady",是該團七年內首支節奏藍調榜冠軍曲及成軍以來第一支打進流行榜前十名的歌曲。同年,兩人合力的暢銷曲"Girlfriend",也使Pebbles的歌唱生涯順利起飛。

Babyface在1987年發行的個人首張專輯「情人」(Lovers),來自各界的好評開始打響他的知名度。Babyface在這張專輯中用近似假聲的唱法,唱出他對愛情的觀感。趁著這次的重新發行,專輯中特別收錄三首不同版本的"Mary Mack"、"If We Try"和"Lovers",歌迷可以重新回味Babyface的處女作。
曲目:

1. You Make Me Feel Brand New
2. Lovers
3. Chivalry
4. I Love You Babe
5. Mary Mack
6. Faithful
7. If We Try
8. Take Your Time
9. I Love You Babe (Reprise)
10. Mary Mack - (Free Style mix, bonus track)
11. If We Try - (bonus track, 12" version)
12. Lovers - (Jazz Lover's mix, bonus track)
藝人姓名: 娃娃臉/Babyface
專輯名稱: 溫柔情人/Tender Lover

Babyface在1989年推出的第二張專輯「溫柔情人」(Tender Lover),對大部分的唱片消費者來說,是認識這位頂尖詞曲創作者與製作人的一個開始。為了專心於個人的事業,Babyface離開了The Deele,他將之前累積的經驗投注在第二張專輯的製作上,在聲音的表現上顯得更扎實、更有自信,而在內容上,相較於第一張專輯著重於男女間的親密關系,這張專輯更強調情人彼此心靈的交流。Babyface說,他選擇用較冷靜的方式展現性感的一面,在當時,他在歌手與製作人這兩個身分上,表現已漸趨成熟,所以專輯中不乏有感而發的作品。

專輯的首支單曲"It's No Crime"順利登上節奏藍調榜冠軍,也使Babyface首次進入流行榜(最高名次為第七名)。第二支單曲"Tender Lover"也成功拿下R&B榜冠軍席次,在此同時,Babyface和Reid成立了LaFace唱片公司,隸屬於Arista公司,旗下藝人包括TLC及甫獲本屆葛萊美獎最佳節奏藍調女歌手的Toni Braxton。之後的兩支單曲"Whip Appeal"和"My Kinda Girl"都有相當不錯的成績,其中"Whip Appeal"在流行榜最高名次曾達到第六名。專輯本身則蟬連節奏藍調專輯榜冠軍高達十一周,可以說為Babyface創造了事業的一個高峰。

1. It's No Crime
2. Tender Lover
3. Let's Be Romantic
4. Can't Stop My Heart
5. My Kinda Girl
6. Where Will You Go (Prelude)
7. Whip Appeal
8. Soon As I Get Home
9. Given A Chance
10. Sunshine
11. Where Will You Go
12. Tender Lover - (Dub L.A. mix, bonus track)
13. My Kinda Girl - (bonus track, 12" version)
14. Whip Appeal - (bonus track, 12" version)

藝人姓名: 娃娃臉/Babyface
專輯名稱: 只因你太酷/For the Cool in You

1992年,Babyface和老搭檔Antonio "L.A." Reid聯手為Boyz II Men譜寫、製作了暢銷單曲"End of the Road",不但蟬連流行單曲榜冠軍長達13周,也為他拿下生平首座葛萊美獎(年度製作人、最佳節奏藍調歌曲)。但Babyface並未因此自滿,反而更加認真製作他的第三張專輯,成品就是這張「只因你太酷」(For the Cool in You)。

這張專輯在美國賣出三百多萬張,並產生四首單曲,其中最受矚目的是"When Can I See You"。雖然這支單曲在節奏藍調榜的成績不如Babyface以前的單曲亮眼,但是也為他奪得葛萊美獎最佳節奏藍調男歌手獎,且在流行榜曾高居第四名,證明他不只是能在節奏藍調界有表現。唱片公司當初對於這支單曲是否會受歡迎而感到懷疑,但是Babyface相當有信心,他認為這首僅用吉他與鼓簡單伴奏的歌曲,具有屬於它自己的特色,事實證明他是對的。

Babyface喜歡將男性對愛情的想法放在歌曲中,他說,或許男人會感到不自在,但是,這才是女人想要知道的。另外,Babyface還重新詮釋Joe Cocker名曲"You Are So Beautiful",並且賦予原曲一番新意。

1. For The Cool In You
2. Lady, Lady
3. Never Keeping Secrets
4. Rock Bottom
5. And Our Feelings
6. Saturday
7. When Can I See You
8. Illusions
9. A Bit Old-Fashioned
10. You Are So Beautiful
11. I'll Always Love You
12. Well Alright
13. For The Cool In You - (Quiet Storm vocal mix, bonus track)
14. When Can I See You - (Urban Soul Basement mix, bonus track)
15. For The Cool In You - (Midnight Luv Instrumental mix)

藝人姓名: 娃娃臉/Babyface
專輯名稱: 醉情歌/LOVE SONG

相信許多人都同意,俊俏乾凈的臉孔、一身黑服裝扮的Babyface可能是九零年代最具影響力,同時也是最令樂迷喜愛的黑人都會靈魂歌手了,他的嗓音細膩溫柔,使得他唱起情歌來格外令女性樂迷傾倒。

Babyface早期是從美國中部辛辛那提崛起的歌手,但由於他的才華出眾,使得他在很短時間內就取得了為當時如Sheena Easton、Paula Ab

『貳』 TS使用教程(寒冰王朝)

TS伺服器, 全國唯一的三線TS伺服器
www.ts8088.cn
今天開始,凡本家族成員務必使用TS語音插件,此插件方便於家族裡面的管理以及交流,而且不會影響你的

網速,在使用TS過程中如有疑問 請找 名字後有 SA 的伺服器管理員咨詢!

TS伺服器地址:124.193.254.151:8767

TS軟體下載:http://www.qygh.cn/ts.rar

伺服器:

打開TS軟體.點擊連接→連接→輸入伺服器地址還有你注冊的帳號密碼(提示第一次進入不需要用戶名和密

碼.直接蔑名進入.代連接後管理員給你注冊好了.在打用戶名和密碼進入.)

伺服器:124.193.254.151:8767

昵稱:前面加 寒冰x後面是游戲中的ID

登陸名:(在TS注冊的帳號)沒有注冊就不要寫

密碼:(在TS注冊的帳號密碼)沒有注冊就不要寫

填好後按下連接

進入TS後請點擊設置→聲音輸入/輸出設置→在 按鍵聊天 前面打上·→點一右邊哪個 設置 →按下Alt(

或其他鍵都可以)然後關閉. (當你想說話的時候,你可以按住Alt就可以說話了,說完話記得要松開手哦!)

『叄』 ftp如何實現自動下載

CuteFTP
下載:http://www.mydown.com/soft/29/29512.html
漢化:http://www.mydown.com/soft/202/202959.html
使用方法
雙擊桌面上的CuteFTP快捷圖標,啟動CuteFTP程序。第一卧誦謝嶙遠��鯢TP Site Manager(FTP網站管理者)的對話框,如圖1所示,後面再詳細介紹。先點「Exit」退出。回到主程序界面進行必要的設置。
程序主界面
主界面分為四個主要部分,如圖2所示。
1.命令區域(工具欄和菜單):這是FTP站對使用者顯示的信息區,由這里可了解到該站信息,是否支持續傳,正在傳送什麼文件,是否已經斷線等當前連接狀況。
常用的CuteFTP功能按鈕(如圖3所示)介紹如下:
A:Site Manager--調用FTP Site Manager;
B:Quick Connect--快速連接。對於一個新的FTP站,可以連上看看,如符合需要,點擊Session / Add to database,取一個站名,便可將它加入 「FTP Site Manager」中進行詳細編輯設置;
C:Disconnect--中斷連接;
D:Reconnect--重新連接;
E:Upload--上傳文件;
F:Download--下載文件;
G:Short Directory Listing--只列出文件及目錄名稱;
H:Long Directory Listing--完整列出文件及目錄的詳細資料,這樣可以在傳完文件後,比較本地硬碟的文件大小與FTP站上的文件大小是否一致。如果不一致,則要續傳完整才行;
I、J、K:批處理功能組合鍵; L:View--檢視功能,只是用於文本文件;
M:Execute--執行文件。但不要輕易對FTP站中的文件進行執行操作,這樣會影響速度。 N:Edit--編輯遠程區域中的文件;
O:Rename Files--對文件重新命名;
P:Make new directory--建立新目錄;
Q:Refresh--刷新。重新整理當前目錄中的文件,在比較文件大小前,最好先刷新一下;
R:Stop--立即中斷文件傳輸。
2.本地區域(本地硬碟):顯示本地計算機的硬碟中要上傳(Upload)或下載(Download)的所在目錄及相關文件。
3.遠程區域(遠端伺服器):顯示FTP站的內容。
4.批處理、記錄區域:觀看文件傳輸的進程。可先把本地或遠程區域中的需要文件拖到這個窗口中,再決定是否傳輸。

設 置 篇

選擇下拉菜單的FTP項,選Settings / Options,出現一個有五個標簽的對話框。
1.「General」標簽(如圖4所示):
Mail Address:填入你的E-mail賬號,用作匿名登錄FTP站時的password。
Default Download Directory:預設下載文件存放目錄,如單獨創建一個目錄,會便於整理。
Text Files Viewer:文本文件的檢視工具。默認打開程序為「記事本」,也可以點擊右邊的「…」按鈕,選擇其他文本編輯軟體。
Log File:記錄傳送文件的過程資料。
Max safe index size:Index是指站點說明文件。這里設定index文件大小如果超過指定KB(預設10KB),即詢問是否下載。
Default Retry:設定如果因為FTP站忙而沒接上,程序會自動連接n次,預設值為20。 Start:啟動CuteFTP後使用哪種模式。預設為Site Manager(建議使用模式);
Quick Connect為快速連接;Nothing是直接進入CuteFTP的主程序工作窗口。
2.「Advanced」標簽(如圖5所示)。
Double-click Action:設定雙擊滑鼠左鍵執行什麼命令。預設為Transfer,即開始傳輸文件(建議);
Execute是執行文件(最好別用,除非你很有把握不會出錯);View是查看文件,只對文本文件有效;Nothing是什麼都不執行。
「Receive」和「Sand」是指接收緩沖區和傳送緩沖區的大小。如果在傳輸文件時非常緩慢,不妨試試把兩項都加大到16000。
3.「Display」標簽(如圖6所示)。
Tool Bar: 選擇「Big Buttons」會使用大的功能鍵,這樣看上去會醒目很多,不容易點錯,這項功能很體貼常在網上泡得頭暈眼花的蟲蟲們。
Customize:可以像Office97一樣任意增減功能鍵,排列成自己習慣的菜單。 Select Font:設定顯示字形的樣式及大小。
Colors:顯示訊息及字形顏色。 Reset to defaults:恢復默認的設定值。
4.「Prompts」和「Firewall」標簽(如圖7、圖8所示): 關於操作提示和防火牆的設定,普通用戶使用預設值就行了。

使 用 篇

單擊按鈕,開啟FTP Site Manager。CuteFTP收集了很多著名的FTP站點地址,用滑鼠在「Anonymous FTP Sites」文件夾中選擇你想連接的站點,單擊「Connect」即可連接了。如果想新增一個FTP站點,則單擊「Add Site」,會彈出如圖9所示的對話框。
1.Site Label:任意填寫站名,它起到一個標題作用。如填上筆者的「紅帆船電腦網路工作室」。
2.Host Address:填入FTP伺服器的IP地址或域名,例如免費主頁在太陽城,就要填上它的IP地址:202.98.35.14。注意不要用ftp://或http://開頭。
3.User ID:填寫你的用戶名,Password中填寫密碼。
4.Login type(登錄類型):選擇「Normal」(正常)。很多公用的FTP網站,選用「anonymous」(匿名)登錄,用自己的信箱賬號當password即可。
5.Initial Remote Directory:填上你想登錄FTP伺服器後直接進入那級目錄,如果上傳個人主頁,一般是用「\你的用戶名」路徑;Initial Local Directory:填上你想傳輸的文件在自己硬碟中的目錄,當然不填也可以。
6.Transfer type:文件上傳模式設定。 FTP可以用多種格式傳輸文件,常用的是文本模式和二進制模式。文本傳輸使用ASCII字元,而二進制則無須轉換或格式化即可傳輸字元,因此比文本模式更快,並且可以傳輸所有ASCII值。要注意確保使用正確的傳輸模式傳輸文件,按文本模式傳二進制文件將會導致錯誤。一般我們選「Auto-Detect」即可,它會自行檢測文件類型並使用最適合的上傳方式。
7.點擊「確認」,程序回到圖10的界面,此時「紅帆船電腦網路工作室」已經出現在右邊的框中。選擇此標題,單擊「Connect」,即可連入伺服器(前提當然是你的電腦處於在線狀態,如果不在線,CuteFTP會自動調用聯接上網的程序)。遠端伺服器「驗身」之後,彈出對話框(如圖10所示),單擊「OK」,進入程序主界面,便可以傳送文件了。
六、如何上傳、下載文件
1.在本地硬碟選取一個或多個要上傳的文件,在遠程區域中進入欲將文件送至的目錄。 單擊工具欄上的上傳圖標,或者用滑鼠直接將選取文件拖曳過去,文件便開始上傳。當命令區域中提示DONE,即表示上傳完畢。
2.當遇到只需要上傳所有jpg文件等情況時,可以在菜單中選取「Directory/Group select」,在彈出的對話框中輸入想選取的文件通配符,如圖11所示。該功能支持文件通配符「*」和「?」的用法。
3.CuteFTP2.8支持整個目錄的上傳或下載,操作方法與傳送單一文件是一樣的。但有時網站需要增加目錄,可選擇菜單中的「Commands / Make new directory」,或單擊滑鼠右鍵點選「Make new directory」項。在彈出的對話框中輸入新目錄名即可。如圖12所示。
下載文件與此相似。
傳送文件時,會經常在本地區域或遠程區域中點擊滑鼠右鍵,彈出常用操作的功能菜單:
Delete:刪除被選中的文件;
Rename:對被選中的文件重命名;
Change file attributes:修改遠程區域中被選中的文件屬性。這一項對於CGI文件很重要。點擊此項,將彈出如圖13所示的對話框,具體設置方法可參考幫助文件。
Make new dir:建立文件夾(目錄);
Refresh:刷新。

技 巧 篇

1.注意文件名稱的大小寫。因為大多數遠程伺服器,對於文件或目錄名的大小寫非常敏感。如果FTP軟體中沒有強制小寫字母的功能,就要注意文件及目錄名要用小寫。在CuteFTP中,在FTP Site Manager / Edit Site / Advanced的Upload Filenames中選擇Force Lowercase(強制小寫),可以強制實現上傳文件名稱為小寫。如圖14所示。
2.正確設置本地及遠程目錄。在CuteFTP中設置好本地及遠程目錄的路徑,登錄後將自動進入指定目錄中,就馬上可以進行文件傳送了,能節省很多切換目錄的時間。注意本地目錄路徑是用「\」格式,而在遠程目錄路徑使用的是「/」格式,因為大部分的伺服器都是UNIX系統。對於常用的目錄,應將它加到Bookmarks書簽中。
3.進入某站點時候盯著注意信息窗,如果顯示了「This site can resume broken downloads」,即表示支持續傳功能。
4.CuteFTP的目錄下的smdata.dat文件,記錄了「FTP Site Manager」中各網站的信息,應該定期備份。如果「FTP Site Manager」損失,或者重裝了CuteFTP,將此文件復制回去,就不用再編輯一大堆的FTP站了。此外還應備份四個重要的文件:cuteftp.key、 commands.dat、 bookmark.dat、 autoname.dat。
5.傳送文件結束後,在FTP Site Manager中,不要將Password保留,容易被別人利用。
6.CuteFTP是共享軟體,有很多功能需要注冊才能使用。
7.CuteFTP 2.8已經解決了Y2K問題,但注意不要將系統日期設定到2037年之後。
8.如果CuteFTP一切設置正常,但傳輸文件還是非常慢或者只能傳輸部分文件便停止,請在Windows的system.ini中加上[VNTSPSD]MaxFrameSize=3D1000,然後重啟計算機。或到下列站點下載系統修正程序: http://www.sns-access.com/~netpro/maxmtu.htm http://www.microsoft.com/windows95/info/krnlupd.htm
8、可按如下步驟顯示遠程區域的隱含目錄:在FTP Site Manager選Edit site編輯某個站點。在「Remote Directory」項中輸入「-rtaF」,並且不要復選「Local Filter」項。

『肆』 關於如何實現FTP上傳或者下載帶進度和速率的實現方法

在這里需要說明的是,該方式是通過其他代碼進行改進的。 首先我們需要定義一個委託,用來實現傳輸過程中傳遞文件的總數,已完成的位元組數和速度,方便客戶端界面上調用。 public delegate void TransferProcess(long total,long finished,double speed); 調用代碼就不舉例了 接下來我們建立一個FTPClient類,該類基於socket和FTP協議實現了連接FTP服務,建立目錄,上傳文件,下載文件等主要方法。結構如下: 需要注意的是,我們需要定一個事件event TransferProcess OnTransferProcess;該事件在實例化FTPClient之後需要調用,這個事件對實現進度條和速率是非常重要的。為了實現速率我們還需要定義個公開的成員startTime(開始時間)。我們現在主要是看一下如何上傳的。 /// /// 上傳一個文件 /// /// 本地文件名 public void Put(string strFileName) { //連接伺服器 if (!bConnected) { Connect(); } UpdateStatus = true; //建立socket連接 Socket socketData = CreateDataSocket(); //向FTP伺服器發生存儲命令 SendCommand("STOR " + Path.GetFileName(strFileName)); //如何伺服器返回的信息不是我們所需要的,就拋出異常 if (!(iReplyCode == 125 || iReplyCode == 150)) { throw new IOException(strReply.Substring(4)); } //建立本地文件的數據流 FileStream input = new FileStream(strFileName, FileMode.Open); int iBytes = 0; long total = input.Length;//該成員主要記錄文件的總位元組數,注意這里使用長整型,是為了突破只能傳輸2G左右的文件的限制 long finished = 0;//該成員主要記錄已經傳輸完成的位元組數,注意這里使用長整型,是為了突破只能傳輸2G左右的文件的限制 double speed = 0;//記錄傳輸的速率 while ((iBytes = input.Read(buffer, 0, buffer.Length)) > 0)//循環從本地數據流中讀取數據到緩沖區 { //Console.WriteLine(startTime.ToString()); socketData.Send(buffer, iBytes, 0);//將緩沖區的數據發送到FTP伺服器 DateTime endTime = DateTime.Now;//每次發送數據的結束時間 TimeSpan ts = endTime - startTime;//計算每次發送數據的時間間隔 finished += iBytes;//計算完成的位元組數. Console.WriteLine(ts.Milliseconds); //計算速率,注意finished是位元組,所以需要換算沖K位元組 if (ts.Milliseconds > 0) { speed = (double)(finished / ts.TotalMilliseconds); speed = Math.Round(speed * 1000 / 1024, 2); } //這里是必不可少的,否則你無法實現進度條 //如果傳輸進度事件被實例化,而且從本地數據流中讀取數據不是空的並完成的位元組數也不為空的話,則實現委託. if (OnTransferProcess != null&&iBytes>0&&finished>0) { OnTransferProcess(total, finished,speed); } } UpdateStatus = false; finished = 0; input.Close();//當傳輸完成之後需要關閉數據流,以便下次訪問. if (socketData.Connected) { socketData.Close();//關閉當前的socket } if (!(iReplyCode == 226 || iReplyCode == 250)) { ReadReply(); if (!(iReplyCode == 226 || iReplyCode == 250)) { UpdateStatus = false; throw new IOException(strReply.Substring(4)); } } } 上面代碼中注釋寫得比較詳細,這里就不再一一講解了,關於下載中實現進度條和速率的問題可以參考以上代碼進行修改. 完整的代碼如下: using System; using System.net; using System.IO; using System.Text; using System.net.Sockets; namespace MMSEncoder { public delegate void TransferProcess(long total,long finished,double speed); /// /// FTP Client /// public class FTPClient { public event TransferProcess OnTransferProcess; public bool UpdateStatus = true; public DateTime startTime; private bool IsAbortConnect = false; #region 構造函數 /// /// 預設構造函數 /// public FTPClient() { strRemoteHost = ""; strRemotePath = ""; strRemoteUser = ""; strRemotePass = ""; strRemotePort = 21; bConnected = false; } /// /// 構造函數 /// /// FTP伺服器IP地址 /// 當前伺服器目錄 /// 登錄用戶賬號 /// 登錄用戶密碼 /// FTP伺服器埠 public FTPClient(string remoteHost, string remotePath, string remoteUser, string remotePass, int remotePort) { strRemoteHost = remoteHost; strRemotePath = remotePath; strRemoteUser = remoteUser; strRemotePass = remotePass; strRemotePort = remotePort; Connect(); } #endregion #region 登陸欄位、屬性 /// /// FTP伺服器IP地址 /// private string strRemoteHost; public string RemoteHost { get { return strRemoteHost; } set { strRemoteHost = value; } } /// /// FTP伺服器埠 /// private int strRemotePort; public int RemotePort { get { return strRemotePort; } set { strRemotePort = value; } } /// /// 當前伺服器目錄 /// private string strRemotePath; public string RemotePath { get { return strRemotePath; } set { strRemotePath = value; } } /// /// 登錄用戶賬號 /// private string strRemoteUser; public string RemoteUser { set { strRemoteUser = value; } } /// /// 用戶登錄密碼 /// private string strRemotePass; public string RemotePass { set { strRemotePass = value; } } /// /// 是否登錄 /// private Boolean bConnected; public bool Connected { get { return bConnected; } } #endregion #region 鏈接 /// /// 建立連接 /// public void Connect() { //if (IsAbortConnect) throw new IOException("用戶強制終止了FTP"); socketControl = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPEndPoint ep = new IPEndPoint(IPAddress.Parse(RemoteHost), strRemotePort); // 鏈接 try { socketControl.Connect(ep); } catch (Exception) { throw new IOException("無法連接到遠程伺服器!"); } // 獲取應答碼 ReadReply(); if (iReplyCode != 220) { DisConnect(); throw new IOException(strReply.Substring(4)); } // 登陸 SendCommand("USER " + strRemoteUser); if (!(iReplyCode == 331 || iReplyCode == 230)) { CloseSocketConnect();//關閉連接 throw new IOException(strReply.Substring(4)); } if (iReplyCode != 230) { SendCommand("PASS " + strRemotePass); if (!(iReplyCode == 230 || iReplyCode == 202)) { CloseSocketConnect();//關閉連接 throw new IOException(strReply.Substring(4)); } } bConnected = true; // 切換到初始目錄 if (!string.IsNullOrEmpty(strRemotePath)) { ChDir(strRemotePath); } } /// /// 關閉連接 /// public void DisConnect() { if (socketControl != null) { SendCommand("QUIT"); } CloseSocketConnect(); } public void AbortConnect() { if (socketControl != null) { SendCommand("ABOR"); } IsAbortConnect = true; //CloseSocketConnect(); } #endregion #region 傳輸模式 /// /// 傳輸模式:二進制類型、ASCII類型 /// public enum TransferType { Binary, ASCII }; /// /// 設置傳輸模式 /// /// 傳輸模式 public void SetTransferType(TransferType ttType) { if (ttType == TransferType.Binary) { SendCommand("TYPE I");//binary類型傳輸 } else { SendCommand("TYPE A");//ASCII類型傳輸 } if (iReplyCode != 200) { throw new IOException(strReply.Substring(4)); } else { trType = ttType; } } /// /// 獲得傳輸模式 /// /// 傳輸模式 public TransferType GetTransferType() { return trType; } #endregion #region 文件操作 /// /// 獲得文件列表 /// /// 文件名的匹配字元串 /// public string[] Dir(string strMask) { // 建立鏈接 if (!bConnected) { Connect(); } //建立進行數據連接的socket Socket socketData = CreateDataSocket(); //傳送命令 SendCommand("NLST " + strMask); //分析應答代碼 if (!(iReplyCode == 150 || iReplyCode == 125 || iReplyCode == 226)) { throw new IOException(strReply.Substring(4)); } //獲得結果 strMsg = ""; while (true) { int iBytes = socketData.Receive(buffer, buffer.Length, 0); strMsg += GB2312.GetString(buffer, 0, iBytes); if (iBytes < buffer.Length) { break; } } char[] seperator = { '\n' }; string[] strsFileList = strMsg.Split(seperator); socketData.Close();//數據socket關閉時也會有返回碼 if (iReplyCode != 226) { ReadReply(); if (iReplyCode != 226) { throw new IOException(strReply.Substring(4)); } } return strsFileList; } /// /// 獲取文件大小 /// /// 文件名 /// 文件大小 public long GetFileSize(string strFileName) { if (!bConnected) { Connect(); } SendCommand("SIZE " + Path.GetFileName(strFileName)); long lSize = 0; if (iReplyCode == 213) { lSize = Int64.Parse(strReply.Substring(4)); } else { throw new IOException(strReply.Substring(4)); } return lSize; } /// /// 刪除 /// /// 待刪除文件名 public void Delete(string strFileName) { if (!bConnected) { Connect(); } SendCommand("DELE " + strFileName); if (iReplyCode != 250) { throw new IOException(strReply.Substring(4)); } } /// /// 重命名(如果新文件名與已有文件重名,將覆蓋已有文件) /// /// 舊文件名 /// 新文件名 public void Rename(string strOldFileName, string strNewFileName) { if (!bConnected) { Connect(); } SendCommand("RNFR " + strOldFileName); if (iReplyCode != 350) { throw new IOException(strReply.Substring(4)); } // 如果新文件名與原有文件重名,將覆蓋原有文件 SendCommand("RNTO " + strNewFileName); if (iReplyCode != 250) { throw new IOException(strReply.Substring(4)); } } #endregion #region 上傳和下載 /// /// 下載一批文件 /// /// 文件名的匹配字元串 /// 本地目錄(不得以\結束) public void Get(string strFileNameMask, string strFolder) { if (!bConnected) { Connect(); } string[] strFiles = Dir(strFileNameMask); foreach (string strFile in strFiles) { if (!strFile.Equals(""))//一般來說strFiles的最後一個元素可能是空字元串 { if (strFile.LastIndexOf(".") > -1) { Get(strFile.Replace("\r", ""), strFolder, strFile.Replace("\r", "")); } } } } /// /// 下載一個文件 /// /// 要下載的文件名 /// 本地目錄(不得以\結束) /// 保存在本地時的文件名 public void Get(string strRemoteFileName, string strFolder, string strLocalFileName) { if (!bConnected) { Connect(); } SetTransferType(TransferType.Binary); if (strLocalFileName.Equals("")) { strLocalFileName = strRemoteFileName; } if (!File.Exists(strLocalFileName)) { Stream st = File.Create(strLocalFileName); st.Close(); } FileStream output = new FileStream(strFolder + "\\" + strLocalFileName, FileMode.Create); Socket socketData = CreateDataSocket(); SendCommand("RETR " + strRemoteFileName); if (!(iReplyCode == 150 || iReplyCode == 125 || iReplyCode == 226 || iReplyCode == 250)) { throw new IOException(strReply.Substring(4)); } while (true) { int iBytes = socketData.Receive(buffer, buffer.Length, 0); output.Write(buffer, 0, iBytes); if (iBytes 0) { Console.WriteLine(startTime.ToString()); socketData.Send(buffer, iBytes, 0); DateTime endTime = DateTime.Now; TimeSpan ts = endTime - startTime; finished += iBytes; Console.WriteLine(ts.Milliseconds); if (ts.Milliseconds > 0) { speed = (double)(finished / ts.TotalMilliseconds); speed = Math.Round(speed * 1000 / 1024, 2); } if (OnTransferProcess != null&&iBytes>0&&finished>0) { OnTransferProcess(total, finished,speed); } } UpdateStatus = false; finished = 0; input.Close(); if (socketData.Connected) { socketData.Close(); } if (!(iReplyCode == 226 || iReplyCode == 250)) { ReadReply(); if (!(iReplyCode == 226 || iReplyCode == 250)) { UpdateStatus = false; throw new IOException(strReply.Substring(4)); } } } #endregion #region 目錄操作 /// /// 創建目錄 /// /// 目錄名 public void MkDir(string strDirName) { if (!bConnected) { Connect(); } SendCommand("MKD " + strDirName); if (iReplyCode != 257) { throw new IOException(strReply.Substring(4)); } } /// /// 刪除目錄 /// /// 目錄名 public void RmDir(string strDirName) { if (!bConnected) { Connect(); } SendCommand("RMD " + strDirName); if (iReplyCode != 250) { throw new IOException(strReply.Substring(4)); } } /// /// 改變目錄 /// /// 新的工作目錄名 public void ChDir(string strDirName) { if (strDirName.Equals(".") || strDirName.Equals("")) { return; } if (!bConnected) { Connect(); } SendCommand("CWD " + strDirName); if (iReplyCode != 250) { throw new IOException(strReply.Substring(4)); } this.strRemotePath = strDirName; } #endregion #region 內部變數 /// /// 伺服器返回的應答信息(包含應答碼) /// private string strMsg; /// /// 伺服器返回的應答信息(包含應答碼) /// private string strReply; /// /// 伺服器返回的應答碼 /// private int iReplyCode; /// /// 進行控制連接的socket /// private Socket socketControl; /// /// 傳輸模式 /// private TransferType trType; /// /// 接收和發送數據的緩沖區 /// private static int BLOCK_SIZE = Int16.MaxValue; Byte[] buffer = new Byte[BLOCK_SIZE]; /// /// 編碼方式(為防止出現中文亂碼採用 GB2312編碼方式) /// Encoding GB2312 = Encoding.Default ;//Encoding.GetEncoding("gb2312"); #endregion #region 內部函數 /// /// 將一行應答字元串記錄在strReply和strMsg /// 應答碼記錄在iReplyCode /// private void ReadReply() { strMsg = ""; strReply = ReadLine(); iReplyCode = Int32.Parse(strReply.Substring(0, 3)); } /// /// 建立進行數據連接的socket /// /// 數據連接socket private Socket CreateDataSocket() { SendCommand("PASV"); if (iReplyCode != 227) { throw new IOException(strReply.Substring(4)); } int index1 = strReply.IndexOf('('); int index2 = strReply.IndexOf(')'); string ipData = strReply.Substring(index1 + 1, index2 - index1 - 1); int[] parts = new int[6]; int len = ipData.Length; int partCount = 0; string buf = ""; for (int i = 0; i < len && partCount

『伍』 關於如何實現FTP上傳或者下載帶進度和速率的實現方法

在這里需要說明的是,該方式是通過其他代碼進行改進的。 首先我們需要定義一個委託,用來實現傳輸過程中傳遞文件的總數,已完成的位元組數和速度,方便客戶端界面上調用。 public delegate void TransferProcess(long total,long finished,double speed); 調用代碼就不舉例了 接下來我們建立一個FTPClient類,該類基於socket和FTP協議實現了連接FTP服務,建立目錄,上傳文件,下載文件等主要方法。結構如下: 需要注意的是,我們需要定一個事件event TransferProcess OnTransferProcess;該事件在實例化FTPClient之後需要調用,這個事件對實現進度條和速率是非常重要的。為了實現速率我們還需要定義個公開的成員startTime(開始時間)。我們現在主要是看一下如何上傳的。 /// /// 上傳一個文件 /// /// 本地文件名 public void Put(string strFileName) { //連接伺服器 if (!bConnected) { Connect(); } UpdateStatus = true; //建立socket連接 Socket socketData = CreateDataSocket(); //向FTP伺服器發生存儲命令 SendCommand("STOR " + Path.GetFileName(strFileName)); //如何伺服器返回的信息不是我們所需要的,就拋出異常 if (!(iReplyCode == 125 || iReplyCode == 150)) { throw new IOException(strReply.Substring(4)); } //建立本地文件的數據流 FileStream input = new FileStream(strFileName, FileMode.Open); int iBytes = 0; long total = input.Length;//該成員主要記錄文件的總位元組數,注意這里使用長整型,是為了突破只能傳輸2G左右的文件的限制 long finished = 0;//該成員主要記錄已經傳輸完成的位元組數,注意這里使用長整型,是為了突破只能傳輸2G左右的文件的限制 double speed = 0;//記錄傳輸的速率 while ((iBytes = input.Read(buffer, 0, buffer.Length)) > 0)//循環從本地數據流中讀取數據到緩沖區 { //Console.WriteLine(startTime.ToString()); socketData.Send(buffer, iBytes, 0);//將緩沖區的數據發送到FTP伺服器 DateTime endTime = DateTime.Now;//每次發送數據的結束時間 TimeSpan ts = endTime - startTime;//計算每次發送數據的時間間隔 finished += iBytes;//計算完成的位元組數. Console.WriteLine(ts.Milliseconds); //計算速率,注意finished是位元組,所以需要換算沖K位元組 if (ts.Milliseconds > 0) { speed = (double)(finished / ts.TotalMilliseconds); speed = Math.Round(speed * 1000 / 1024, 2); } //這里是必不可少的,否則你無法實現進度條 //如果傳輸進度事件被實例化,而且從本地數據流中讀取數據不是空的並完成的位元組數也不為空的話,則實現委託. if (OnTransferProcess != null&&iBytes>0&&finished>0) { OnTransferProcess(total, finished,speed); } } UpdateStatus = false; finished = 0; input.Close();//當傳輸完成之後需要關閉數據流,以便下次訪問. if (socketData.Connected) { socketData.Close();//關閉當前的socket } if (!(iReplyCode == 226 || iReplyCode == 250)) { ReadReply(); if (!(iReplyCode == 226 || iReplyCode == 250)) { UpdateStatus = false; throw new IOException(strReply.Substring(4)); } } } 上面代碼中注釋寫得比較詳細,這里就不再一一講解了,關於下載中實現進度條和速率的問題可以參考以上代碼進行修改. 完整的代碼如下: using System; using System.net; using System.IO; using System.Text; using System.net.Sockets; namespace MMSEncoder { public delegate void TransferProcess(long total,long finished,double speed); /// /// FTP Client /// public class FTPClient { public event TransferProcess OnTransferProcess; public bool UpdateStatus = true; public DateTime startTime; private bool IsAbortConnect = false; #region 構造函數 /// /// 預設構造函數 /// public FTPClient() { strRemoteHost = ""; strRemotePath = ""; strRemoteUser = ""; strRemotePass = ""; strRemotePort = 21; bConnected = false; } /// /// 構造函數 /// /// FTP伺服器IP地址 /// 當前伺服器目錄 /// 登錄用戶賬號 /// 登錄用戶密碼 /// FTP伺服器埠 public FTPClient(string remoteHost, string remotePath, string remoteUser, string remotePass, int remotePort) { strRemoteHost = remoteHost; strRemotePath = remotePath; strRemoteUser = remoteUser; strRemotePass = remotePass; strRemotePort = remotePort; Connect(); } #endregion #region 登陸欄位、屬性 /// /// FTP伺服器IP地址 /// private string strRemoteHost; public string RemoteHost { get { return strRemoteHost; } set { strRemoteHost = value; } } /// /// FTP伺服器埠 /// private int strRemotePort; public int RemotePort { get { return strRemotePort; } set { strRemotePort = value; } } /// /// 當前伺服器目錄 /// private string strRemotePath; public string RemotePath { get { return strRemotePath; } set { strRemotePath = value; } } /// /// 登錄用戶賬號 /// private string strRemoteUser; public string RemoteUser { set { strRemoteUser = value; } } /// /// 用戶登錄密碼 /// private string strRemotePass; public string RemotePass { set { strRemotePass = value; } } /// /// 是否登錄 /// private Boolean bConnected; public bool Connected { get { return bConnected; } } #endregion #region 鏈接 /// /// 建立連接 /// public void Connect() { //if (IsAbortConnect) throw new IOException("用戶強制終止了FTP"); socketControl = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPEndPoint ep = new IPEndPoint(IPAddress.Parse(RemoteHost), strRemotePort); // 鏈接 try { socketControl.Connect(ep); } catch (Exception) { throw new IOException("無法連接到遠程伺服器!"); } // 獲取應答碼 ReadReply(); if (iReplyCode != 220) { DisConnect(); throw new IOException(strReply.Substring(4)); } // 登陸 SendCommand("USER " + strRemoteUser); if (!(iReplyCode == 331 || iReplyCode == 230)) { CloseSocketConnect();//關閉連接 throw new IOException(strReply.Substring(4)); } if (iReplyCode != 230) { SendCommand("PASS " + strRemotePass); if (!(iReplyCode == 230 || iReplyCode == 202)) { CloseSocketConnect();//關閉連接 throw new IOException(strReply.Substring(4)); } } bConnected = true; // 切換到初始目錄 if (!string.IsNullOrEmpty(strRemotePath)) { ChDir(strRemotePath); } } /// /// 關閉連接 /// public void DisConnect() { if (socketControl != null) { SendCommand("QUIT"); } CloseSocketConnect(); } public void AbortConnect() { if (socketControl != null) { SendCommand("ABOR"); } IsAbortConnect = true; //CloseSocketConnect(); } #endregion #region 傳輸模式 /// /// 傳輸模式:二進制類型、ASCII類型 /// public enum TransferType { Binary, ASCII }; /// /// 設置傳輸模式 /// /// 傳輸模式 public void SetTransferType(TransferType ttType) { if (ttType == TransferType.Binary) { SendCommand("TYPE I");//binary類型傳輸 } else { SendCommand("TYPE A");//ASCII類型傳輸 } if (iReplyCode != 200) { throw new IOException(strReply.Substring(4)); } else { trType = ttType; } } /// /// 獲得傳輸模式 /// /// 傳輸模式 public TransferType GetTransferType() { return trType; } #endregion #region 文件操作 /// /// 獲得文件列表 /// /// 文件名的匹配字元串 /// public string[] Dir(string strMask) { // 建立鏈接 if (!bConnected) { Connect(); } //建立進行數據連接的socket Socket socketData = CreateDataSocket(); //傳送命令 SendCommand("NLST " + strMask); //分析應答代碼 if (!(iReplyCode == 150 || iReplyCode == 125 || iReplyCode == 226)) { throw new IOException(strReply.Substring(4)); } //獲得結果 strMsg = ""; while (true) { int iBytes = socketData.Receive(buffer, buffer.Length, 0); strMsg += GB2312.GetString(buffer, 0, iBytes); if (iBytes < buffer.Length) { break; } } char[] seperator = { '
' }; string[] strsFileList = strMsg.Split(seperator); socketData.Close();//數據socket關閉時也會有返回碼 if (iReplyCode != 226) { ReadReply(); if (iReplyCode != 226) { throw new IOException(strReply.Substring(4)); } } return strsFileList; } /// /// 獲取文件大小 /// /// 文件名 /// 文件大小 public long GetFileSize(string strFileName) { if (!bConnected) { Connect(); } SendCommand("SIZE " + Path.GetFileName(strFileName)); long lSize = 0; if (iReplyCode == 213) { lSize = Int64.Parse(strReply.Substring(4)); } else { throw new IOException(strReply.Substring(4)); } return lSize; } /// /// 刪除 /// /// 待刪除文件名 public void Delete(string strFileName) { if (!bConnected) { Connect(); } SendCommand("DELE " + strFileName); if (iReplyCode != 250) { throw new IOException(strReply.Substring(4)); } } /// /// 重命名(如果新文件名與已有文件重名,將覆蓋已有文件) /// /// 舊文件名 /// 新文件名 public void Rename(string strOldFileName, string strNewFileName) { if (!bConnected) { Connect(); } SendCommand("RNFR " + strOldFileName); if (iReplyCode != 350) { throw new IOException(strReply.Substring(4)); } // 如果新文件名與原有文件重名,將覆蓋原有文件 SendCommand("RNTO " + strNewFileName); if (iReplyCode != 250) { throw new IOException(strReply.Substring(4)); } } #endregion #region 上傳和下載 /// /// 下載一批文件 /// /// 文件名的匹配字元串 /// 本地目錄(不得以\結束) public void Get(string strFileNameMask, string strFolder) { if (!bConnected) { Connect(); } string[] strFiles = Dir(strFileNameMask); foreach (string strFile in strFiles) { if (!strFile.Equals(""))//一般來說strFiles的最後一個元素可能是空字元串 { if (strFile.LastIndexOf(".") > -1) { Get(strFile.Replace("\r", ""), strFolder, strFile.Replace("\r", "")); } } } } /// /// 下載一個文件 /// /// 要下載的文件名 /// 本地目錄(不得以\結束) /// 保存在本地時的文件名 public void Get(string strRemoteFileName, string strFolder, string strLocalFileName) { if (!bConnected) { Connect(); } SetTransferType(TransferType.Binary); if (strLocalFileName.Equals("")) { strLocalFileName = strRemoteFileName; } if (!File.Exists(strLocalFileName)) { Stream st = File.Create(strLocalFileName); st.Close(); } FileStream output = new FileStream(strFolder + "\\" + strLocalFileName, FileMode.Create); Socket socketData = CreateDataSocket(); SendCommand("RETR " + strRemoteFileName); if (!(iReplyCode == 150 || iReplyCode == 125 || iReplyCode == 226 || iReplyCode == 250)) { throw new IOException(strReply.Substring(4)); } while (true) { int iBytes = socketData.Receive(buffer, buffer.Length, 0); output.Write(buffer, 0, iBytes); if (iBytes <= 0) { break; } } output.Close(); if (socketData.Connected) { socketData.Close(); } if (!(iReplyCode == 226 || iReplyCode == 250)) { ReadReply(); if (!(iReplyCode == 226 || iReplyCode == 250)) { throw new IOException(strReply.Substring(4)); } } } /// /// 上傳一批文件 /// /// 本地目錄(不得以\結束) /// 文件名匹配字元(可以包含*和?) public void Put(string strFolder, string strFileNameMask) { string[] strFiles = Directory.GetFiles(strFolder, strFileNameMask); foreach (string strFile in strFiles) { //strFile是完整的文件名(包含路徑) Put(strFile); } } /// /// 上傳一個文件 /// /// 本地文件名 public void Put(string strFileName) { if (!bConnected) { Connect(); } UpdateStatus = true; Socket socketData = CreateDataSocket(); SendCommand("STOR " + Path.GetFileName(strFileName)); if (!(iReplyCode == 125 || iReplyCode == 150)) { throw new IOException(strReply.Substring(4)); } FileStream input = new FileStream(strFileName, FileMode.Open); int iBytes = 0; long total = input.Length; long finished = 0; //DateTime startTime = DateTime.Now; double speed = 0; while ((iBytes = input.Read(buffer, 0, buffer.Length)) > 0) { Console.WriteLine(startTime.ToString()); socketData.Send(buffer, iBytes, 0); DateTime endTime = DateTime.Now; TimeSpan ts = endTime - startTime; finished += iBytes; Console.WriteLine(ts.Milliseconds); if (ts.Milliseconds > 0) { speed = (double)(finished / ts.TotalMilliseconds); speed = Math.Round(speed * 1000 / 1024, 2); } if (OnTransferProcess != null&&iBytes>0&&finished>0) { OnTransferProcess(total, finished,speed); } } UpdateStatus = false; finished = 0; input.Close(); if (socketData.Connected) { socketData.Close(); } if (!(iReplyCode == 226 || iReplyCode == 250)) { ReadReply(); if (!(iReplyCode == 226 || iReplyCode == 250)) { UpdateStatus = false; throw new IOException(strReply.Substring(4)); } } } #endregion #region 目錄操作 /// /// 創建目錄 /// /// 目錄名 public void MkDir(string strDirName) { if (!bConnected) { Connect(); } SendCommand("MKD " + strDirName); if (iReplyCode != 257) { throw new IOException(strReply.Substring(4)); } } /// /// 刪除目錄 /// /// 目錄名 public void RmDir(string strDirName) { if (!bConnected) { Connect(); } SendCommand("RMD " + strDirName); if (iReplyCode != 250) { throw new IOException(strReply.Substring(4)); } } /// /// 改變目錄 /// /// 新的工作目錄名 public void ChDir(string strDirName) { if (strDirName.Equals(".") || strDirName.Equals("")) { return; } if (!bConnected) { Connect(); } SendCommand("CWD " + strDirName); if (iReplyCode != 250) { throw new IOException(strReply.Substring(4)); } this.strRemotePath = strDirName; } #endregion #region 內部變數 /// /// 伺服器返回的應答信息(包含應答碼) /// private string strMsg; /// /// 伺服器返回的應答信息(包含應答碼) /// private string strReply; /// /// 伺服器返回的應答碼 /// private int iReplyCode; /// /// 進行控制連接的socket /// private Socket socketControl; /// /// 傳輸模式 /// private TransferType trType; /// /// 接收和發送數據的緩沖區 /// private static int BLOCK_SIZE = Int16.MaxValue; Byte[] buffer = new Byte[BLOCK_SIZE]; /// /// 編碼方式(為防止出現中文亂碼採用 GB2312編碼方式) /// Encoding GB2312 = Encoding.Default ;//Encoding.GetEncoding("gb2312"); #endregion #region 內部函數 /// /// 將一行應答字元串記錄在strReply和strMsg /// 應答碼記錄在iReplyCode /// private void ReadReply() { strMsg = ""; strReply = ReadLine(); iReplyCode = Int32.Parse(strReply.Substring(0, 3)); } /// /// 建立進行數據連接的socket /// /// 數據連接socket private Socket CreateDataSocket() { SendCommand("PASV"); if (iReplyCode != 227) { throw new IOException(strReply.Substring(4)); } int index1 = strReply.IndexOf('('); int index2 = strReply.IndexOf(')'); string ipData = strReply.Substring(index1 + 1, index2 - index1 - 1); int[] parts = new int[6]; int len = ipData.Length; int partCount = 0; string buf = ""; for (int i = 0; i < len && partCount <= 6; i++) { char ch = Char.Parse(ipData.Substring(i, 1)); if (Char.IsDigit(ch)) buf += ch; else if (ch != ',') { throw new IOException("Malformed PASV strReply: " + strReply); } if (ch == ',' || i + 1 == len) { try { parts[partCount++] = Int32.Parse(buf); buf = ""; } catch (Exception) { throw new IOException("Malformed PASV strReply: " + strReply); } } } string ipAddress = parts[0] + "." + parts[1] + "." + parts[2] + "." + parts[3]; int port = (parts[4] << 8) + parts[5]; Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPEndPoint ep = new IPEndPoint(IPAddress.Parse(ipAddress), port); try { s.Connect(ep); } catch (Exception) { throw new IOException("無法連接伺服器"); } return s; } /// /// 關閉socket連接(用於登錄以前) /// private void CloseSocketConnect() { if (socketControl != null) { socketControl.Close(); socketControl = null; } bConnected = false; } /// /// 讀取Socket返回的所有字元串 /// /// 包含應答碼的字元串列 private string ReadLine() { while (true) { int iBytes = socketControl.Receive(buffer, buffer.Length, 0); strMsg += GB2312.GetString(buffer, 0, iBytes); if (iBytes < buffer.Length) { break; } } char[] seperator = { '
' }; string[] mess = strMsg.Split(seperator); if (strMsg.Length > 2) { strMsg = mess[mess.Length - 2]; //seperator[0]是10,換行符是由13和0組成的,分隔後10後面雖沒有字元串, //但也會分配為空字元串給後面(也是最後一個)字元串數組, //所以最後一個mess是沒用的空字元串 //但為什麼不直接取mess[0],因為只有最後一行字元串應答碼與信息之間有空格 } else { strMsg = mess[0]; } if (!strMsg.Substring(3, 1).Equals(" "))//返回字元串正確的是以應答碼(如220開頭,後面接一空格,再接問候字元串) { return ReadLine(); } return strMsg; } /// /// 發送命令並獲取應答碼和最後一行應答字元串 /// /// 命令 private void SendCommand(String strCommand) { Byte[] cmdBytes = GB2312.GetBytes((strCommand + "\r
").ToCharArray()); socketControl.Send(cmdBytes, cmdBytes.Length, 0); ReadReply(); } #endregion } }

『陸』 ts格式視頻在html頁面上播放不能快進問題

可能是你的KMPLAYER里的解碼器老了,不能識別

『柒』 求電影80後DVD版的下載地址

目前網上只有TS版,你要DVD的話恐怕還要等半個月左右。
TS的下載地址:
ftp://172.16.172.11/
電影2/80後TS/01.rmvb
ftp://172.16.172.11/
電影2/80後TS/02.rmvb

不過如果你對這電影很期待的話,建議還是耐心等DVD吧。TS是要看壞眼睛噠~~呵呵