在C 中使用硬鏈結

2021-09-28 14:49:58 字數 966 閱讀 2586

在日常工作中,我們經常會有拷貝檔案的需求。相應的,我們也經常會有在程式語言裡面呼叫拷貝檔案的時候,比如c#中的system.io.file.copy。然而,拷貝乙個大檔案常常需要比較多時間和額外的硬碟空間,有時候,在某些情況下(哪些情況我們之後會談到)我們可以考慮使用建立檔案硬鏈結的方式。

從這些規則我們可以得知,硬鏈結和拷貝最大的不同在於,硬鏈結就像多了乙個指標一樣,對硬鏈結檔案內容的修改同樣會反應到原始檔上面,所以如果我們拷貝檔案之後會對檔案做出修改,那就不適合用硬鏈結。如果我們拷貝檔案的目的在於打包部署等,那麼用硬鏈結是很合算的操作。

那麼說了那麼多,究竟應該怎麼在c#裡面建立硬鏈結呢?很可惜,c#本身既不支援硬鏈結,也不支援軟鏈結。要想在c#中使用,我們只有通過dllimport呼叫未託管**。

[

dllimport

("kernel32"

, charset = charset.unicode)

]public

extern

static

bool

createhardlink

(string linkname,

string sourcename,

intptr attribute)

;

需要的時候,直接呼叫就可以

static

void

main

(string

args)

}class

scopestopwatch

:idisposable

public

void

dispose()

", m_watch.elapsedmilliseconds);}

}

其中,data是乙個5g的檔案,如果使用拷貝,需要三分鐘以上,然而用建立硬鏈結的方式,只需要幾毫秒就可以搞定,同時我們可以隨意的刪除原始檔。

在C 中使用Queue

介紹 queue類執行將放在在queue中的物件採用先進先出的資料結構。物件從一端插入到佇列中從另一端移除。物件的順序程序使用queue queue介面 queue類實現了三個主要集合介面 icollection ienumerable和icloneable。queue的重要方法 queue類常用的...

在 C 中使用畫筆

出處 在 c 中使用畫筆 public class rectangle shape protected point m start protected point m end public rectangle point start,point end,color fgcolor m start s...

在 C 中使用 Python script

想要在c 中嵌入script 除了自己寫指令碼引擎外,lua,python 都可以在c 中使用,另外 monobind,angelscript library 都是一些c script library,可以嵌入到c 中使用 今天在c 中試著嵌入 python 示例 在 python 2.5.2 de...