pCloud Partner Program

單一目錄內大量檔案排序

系統技術/Windows 2012/05/28 19:17
views: 142649 times
這個是一個很麻煩的狀況, 在 windows 下, 使用 NTFS 的 Filesystem, 單一目錄可以承載的檔案量其實很大(是 2^32 -1 也就是 4294967295, 其實是整個 volume 不是單一目錄, 但這個上限應該在檔案存滿前是不太會到達的), 但是若是要排序檔案大小, 雖然說可以使用 dir /os 的方式來進行, 不過因為數量過大, 所以往往會很久很久, 而且會鎖住 filesystem.

接下來是實務上要將單一目錄下數量很多的檔案進行依大小排序時的作法.

1. 先將檔案列出來, 但不用排序: dir > dir.txt

2. 利用 sort 指令來進行排序: sort dir.txt /+25 > dirsorted.txt

這個 /+25 可以利用 sort /? 來看參數的用法, 其實是 dir 出來的內容, 列舉如下:

用戶插入圖片

其中的第 25欄起是檔案的大小, 依此來排序的指定方式. 而後面的輸出轉向 > 就是用來將排序好的內容再轉存到另外一個檔去.

利用這樣的方式, 可以避免 dir /os 的時間過久, 直接 dir 輸出結果, 再利用 sort 指令來進行排序, 除了可以分開作業外, 還能大幅提高排序的時間, 是比較理想的方式.

當然, 若是檔案數量不多的時候, 是沒什麼差異的, 當檔案數量多的時候, 可是很有用的!

PS: NTFS 單一 volume 下的檔案數量上限:
http://technet.microsoft.com/en-us/library/cc938432.aspx
http://kewang.pixnet.net/blog/post/24972241
top
TAG dir, file, folder, NTFS, sort

表單上傳檔案取得檔名問題

程式技術/Javascript 2011/05/18 20:40
views: 105646 times
在前端網頁上, 若要上傳檔案, 是利用一個 <input type=file>的標籤來進行的, 這個 UI 看起來的長像在不同瀏覽器會有不同的結果, 也因為這樣, WEB DESIGNER 常常需要做一些設計來美化及一致化這個長相.

這篇文章不是在討論這個上傳檔案的長相, 而是要探討在前端程式碼取出上傳檔案的名稱, 這個也在不同的瀏覽器有不同的結果, 尤其新的瀏覽器又增加了一些特異功能. (如隱藏路徑)

這樣一來, 若是要對上傳檔案名稱欄位取出做一些判斷的話, 可要注意這些狀況的差異, 這裡寫了個小程式, 取出 <input type=file>的值, 在不同瀏覽器下可以測出不同的結果, 連結在這裡:

http://sample.diary.tw/25

我們以上傳 C:\test\1.txt 為例, 在不同瀏覽器下的結果如下:

IE9:
用戶插入圖片


Firefox 4.01
用戶插入圖片


Google Chrome 5:
用戶插入圖片


Safari 5:
用戶插入圖片


從上面畫面的結果來看, 發現 IE9 及 Google Chrome 會有含路徑的檔名, 但會隱藏路徑, 而 Firefox 4.01及 Safari 5則只會出現檔名而已, 不會有路徑, 而 IE6, IE7, IE8 的狀況則是 IE8 會像 IE9 一樣, 但 IE7, IE6 則是真實的檔案路徑, 如下:

IE6:
用戶插入圖片


IE7:
用戶插入圖片


IE8:
用戶插入圖片


這樣就清楚啦!
top

利用ashx傳送檔案下載

程式技術/.NET 2009/12/14 17:32
views: 110274 times
在 asp.net 中, 若要實現檔案下載處理的方式(並且要進行 url 隱藏及下載管理), 可以利用 ashx (generic handler) 來進行, 方式很單純, 主要是在 header 上下一些手腳, 方式如下:



使用的方式若是處理檔案下載, 可以利用 application/octet-stream 這個 ContentType header , 並配合 Content-Disposition header 中, 利用 attachment; filename=xxxx 的方式來將檔案名稱指定給客戶端, 參考資料: http://support.microsoft.com/?scid=kb%3Ben-us%3B260519

而之後再利用 TransmitFile() 方法, 將在 server 上的檔案讀取出來並傳送到客戶端, 至於使用 TransmitFile 方法和其他方法的比較如這篇文章所示: http://blog.miniasp.com/post/2008/03/Caution-about-ASPNET-Response-a-Large-File.aspx

一般來說, 若是大檔案, 可以直接利用 TransmitFile 的方式來進行, 但不是太大型檔案, 有續傳需求時, 則不適用, 但效率上是以 TransmitFile 的效率最佳(因為不用先整個讀到記憶體中).

其他人的比較資料:
[ASP.NET] 無網址的檔案下載 - 進階研究 http://gogo1119.pixnet.net/blog/post/27407222

[2010/2/12 14:48]
相關文章: http://edu.uuu.com.tw/data_article/article/100212tips.htm

top

Email夾大的檔案

好用軟體 2008/08/18 02:12
views: 96855 times
有時候會需要傳送大的檔案給朋友.

在這時候有幾個做法,
1. msn傳檔 (或skype傳檔等IM的方式)
2. 透過 gmail 傳檔(其實是利用 gmail 寄信的方式, 但因為雙方都用 gmail, 速度可以快很多)
3. 透過 web 寄存檔案的方式, 例如 badongo (http://www.badongo.com/)
4. 透過這篇文章介紹的 filemail 服務 (http://www.filemail.com/)
5. 透過 ftp, http 等方式(但必須自有主機才行, 門檻較高, 而且速度也不見得快)

這次介紹的 filemail 其實和 badongo 相當類似, 只是更直接, 由它的 domain name 可以很清楚的看出來是用來寄 file 的 mail. 但其實就是檔案透過 web 寄存的方式, 只是他有更多的管理條件, 而且有蠻方便的 zip 全部下載的方式, 也相當貼心.

上傳是透過 flash 的方式, 可以支援多檔同時上傳, 另外可以設定密碼(需付費), 設定允許下載次數(free 最多20次), 設定有效日數(free最多3日). 進階設定畫面如下:
用戶插入圖片

並可以於上傳時, 同時寄送 email 給收件人(仍是帶連結回到 web 進行下載的方式), 下載介面可以 preview 圖片檔, 並可以利用 zip 方式將所有檔案壓縮後以一個檔案的方式下載.

雖然說 free 有些限制, 不過上傳下載速度都還不錯, 而且 free 就有 2gb 可以用, 真的還蠻方便的, 若有傳檔的需求, 臨時又沒有其他好方式, 可以利用這個方法來協助傳檔哦!

這邊是該網站說明他的服務及比較: http://www.filemail.com/about.aspx

[2008/9/2 9:57]
今天在看自己之前的 hemidemi 書籤時, 發現其實之前就有很有用的資訊了, 貼上來給大家參考:
超限傳檔術-超級快的18個傳檔方式
top

如何判斷WMV, WMA, ASF的檔案

程式技術/.NET 2007/07/27 15:44
views: 140938 times
wmv, wma 的判斷方式, 是利用這篇參考資料進行實作的:

http://www.microsoft.com/windows/windowsmedia/forpros/format/asfspec.aspx

裡面有一篇非常詳細的 asf 檔案格式的描述, 根據這篇的描述, 我們可以進行程式實作來判定 asf 及 wmv 和 wma, 主要的判定是利用 header 中的 stream type 來進行判斷的, 首先先讀出 asf 的格式檔頭, 讀出 guid 如下: (c#)



上面確定為 asf format (可能是 wmv 也可能是 wma), 接下來再進行確認其內容是否有 audio 及 video 的狀況, 來判定應為 wmv 或 wma.

我們必須先找出 header object 為 ASF_Stream_Properties_Object 的內容為 ASF_Audio_Media 或 ASF_Video_Media 的狀況, 通常 wma 僅有 ASF_Audio_Media, 而 wmv 為 ASF_Audio_Media 及 ASF_Video_Media 都存在, 所以就繼續找出 stream 的 type 即可, 程式碼在此, 給大家研究看看, 節省大家在判定這些檔案的時間囉!



top




Nextbit Robin 5.2吋六核心智慧型手機 Microsoft Office 365 中文家用版PKC (無光碟)
ASUS華碩 AC1900 雙頻無線路由器 RT-AC68U 美國 VORNADO 533 渦流空氣循環機 (黑色)
御茶園 每朝健康綠茶(650mlx24入) 每朝健康 雙纖綠茶(650mlx24入)


 Waiting...