- 1、本文档共59页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
檔案系統管理與維護
C
H
A
P
T
E
R
7
檔案系統管理與維護
檔案與目錄的管理與維護是Windows Vista的重要工作之一,如何提供
一個具備穩定、效率、安全、高度彈性的檔案存取系統,將是Windows
Vista管理員的挑戰。然而,檔案資源的管理方式和檔案系統所支援的功
能密切相關,Windows Vista支援三種磁碟檔案系統,分別是FAT16、
FAT32、NTFS,了解並選擇一個適當的檔案系統是檔案目錄管理的首要
步驟。其次,學習如何善用檔案系統(特別是NTFS;New Technology
File System)的特性及功能,以執行各項檔案、目錄資源的管理工作,
更是管理員必須具備的技術。
本章將分析與說明檔案系統的功能及各項管理工作,內容包括各種檔案
系統的特性及差異、NTFS的使用權限、檔案目錄的壓縮功能、檔案加
密保護功能,以及磁碟配額等項目。
6
7
8
9
A
7-1 檔案系統新功能
Windows Vista在檔案系統上最大的革新是提供了Transactional NTFS
(簡稱TxF)的交易式檔案系統。TxF的設計概念來自於資料庫的完整交
易概念,它允許使用者在操作檔案或目錄遇到錯誤時,保護所操作資料的
完整性與正確性。例如,Windows Vista電腦中某個應用軟體儲存資料到
媒體時出現錯誤,則可能會因為儲存操作只完成一部分,而導致資料受
損。為了防止類似問題發生,Microsoft設計了TxF交易式檔案系統,讓
開啟檔案、儲存檔案的預設都運作在交易模式下,然後才向系統提交完整
的交易事件。如果系統在儲存操作期間發生問題,就會把檔案復原至儲
存前的狀態,防止資料受損。為確保行為都在預期之中,所有交易都必
須擁有基本ACID屬性(Aatomicity - 即不可分割;Consistency - 一致;
Isolation - 隔離;Durability - 持久的屬性)。這些屬性會將關鍵任務的
交易角色,強化為具「全有」或「全無」的特性。簡單的說,ACID可保
檔
案
系
統
管
理
與
維
護
證一組相關工作如同一個單位般群體成功或失敗。交易處理中的交易不是
認可就是中止,若要認可交易,所有參與者都必須保證資料的任何變更是
永久的。無論系統當機或發生其他意外事件,所做的變更都必須保持下
來。如果有單一參與者無法履行保證,那麼整個交易便會失敗。在交易範
圍中對資料所做的變更都會復原到指定的設定點。
以下將舉C#程式實例說明TxF的實際功能:
using System;
using System.Runtime.InteropServices;
using System.IO;
namespace TxF
{
class Program
{
[DllImport(Kernel32.dll)]
static extern bool
294
DeleteFileTransactedW([MarshalAs(UnmanagedType.LPWStr)]string
file, IntPtr transaction);
[DllImport(Kernel32.dll)]
static extern bool CloseHandle(IntPtr handle);
[DllImport(Ktmw32.dll)]
static extern bool CommitTransaction
(IntPtr transaction);
[DllImport(Ktmw32.dll)]
static extern bool RollbackTransaction
(IntPtr transaction);
6
7.1
8
9
[DllImport(Ktmw32.dll)]
static extern IntPtr
CreateTransaction(IntPtr
A
securityAttributes, IntPtr guid, int options, int
isolationLevel, int isolationFlags, int milliSeconds, string
description);
static void Main(string[] args)
{
檔
案
系
統
新
功
能
//
// Demo setup.
//
string file1 = c:\\temp\\txf1.txt;
string file2 = c:\\temp\\txf2.txt;
using (StreamWriter sw = File.CreateText(file1))
sw.WriteLine(Hello Wo
文档评论(0)