操作系統實驗三:實現一個文件查找程序

仿照unix操作系統中的find命令,在windows上實現一個find命令。find命令從指定的目錄下開始,遞歸地查找指定文件。其命令格式如下:

 

find PATH -option 參數 [-print] [-exec 命令 {} /;]

PATH:查找的起始目錄。

-option 參數:用來控制搜索方式,具體如下(以下只給我常用的):

    -name "文件":指定要查找的文件名,可以有通配符?*等。

    -prune 目錄:指出搜索時不搜索該目錄。

    -mtime +n或-n:按時間搜索,+n:表示n天之前修改過的文件;-n:表示今天到n天前之間修改過的文件。

    -ctime +n或-n:也是按時間查找,+n:表示n天之前創建的文件;-n:表示今天到n天前之間創建的文件。

    -mulstream:如果是多流的文件,查找流的名字

    -print:將搜索結果輸出到標準輸出。

提示:有關多流文件的介紹,請看文檔。其他相關的API請查看MSDN.

可選的實驗1:實現-exe選項。

    -exec:對查找到的每一個結果實行指定的程序。格式如下:

    -exec 程序名

提示:執行指定的程序可以創建一個進程執行

可選的實驗:

    將你實現的find命令改爲用多線程的方式實現。比較多線程實現的find與單線程實現的find的執行結果、效率等,並在實驗報告中給出你的解釋。

 

 


File Attributes

File attributes are metadata values stored by the file system on disk and are used by the system and are available to developers via various file I/O APIs. For a list of related APIs and topics, see the See Also section.

The following table lists file attribute constant names and values with descriptions.

Name

Value(Dec)

Value(Hex)

Description

FILE_ATTRIBUTE_ARCHIVE

32

0x0020

A file or directory that is an archive file or directory. Applications typically use this attribute to mark files for backup or removal.

FILE_ATTRIBUTE_COMPRESSED

2048

0x0800

A file or directory that is compressed. For a file, all of the data in the file is compressed. For a directory, compression is the default for newly created files and subdirectories.

FILE_ATTRIBUTE_DEVICE

64

0x0040

This value is reserved for system use.

FILE_ATTRIBUTE_DIRECTORY

16

0x0010

The handle that identifies a directory.

FILE_ATTRIBUTE_ENCRYPTED

16384

0x4000

A file or directory that is encrypted. For a file, all data streams in the file are encrypted. For a directory, encryption is the default for newly created files and subdirectories.

FILE_ATTRIBUTE_HIDDEN

2

0x0002

The file or directory is hidden. It is not included in an ordinary directory listing.

FILE_ATTRIBUTE_NORMAL

128

0x0080

A file that does not have other attributes set. This attribute is valid only when used alone.

FILE_ATTRIBUTE_NOT_CONTENT_INDEXED

8192

0x2000

The file or directory is not to be indexed by the content indexing service.

FILE_ATTRIBUTE_OFFLINE

4096

0x1000

The data of a file is not available immediately. This attribute indicates that the file data is physically moved to offline storage. This attribute is used by Remote Storage, which is the hierarchical storage management software. Applications should not arbitrarily change this attribute.

FILE_ATTRIBUTE_READONLY

1

0x0001

A file that is read-only. Applications can read the file, but cannot write to it or delete it. This attribute is not honored on directories. For more information, see "You cannot view or change the Read-only or the System attributes of folders in Windows Server 2003, in Windows XP, or in Windows Vista".

FILE_ATTRIBUTE_REPARSE_POINT

1024

0x0400

A file or directory that has an associated reparse point, or a file that is a symbolic link.

FILE_ATTRIBUTE_SPARSE_FILE

512

0x0200

A file that is a sparse file.

FILE_ATTRIBUTE_SYSTEM

4

0x0004

A file or directory that the operating system uses a part of, or uses exclusively.

FILE_ATTRIBUTE_TEMPORARY

256

0x0100

A file that is being used for temporary storage. File systems avoid writing data back to mass storage if sufficient cache memory is available, because typically, an application deletes a temporary file after the handle is closed. In that scenario, the system can entirely avoid writing the data. Otherwise, the data is written after the handle is closed.

FILE_ATTRIBUTE_VIRTUAL

65536

0x10000

This value is reserved for system use.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章