~ubuntu-branches/ubuntu/precise/boinc/precise

« back to all changes in this revision

Viewing changes to zip/zip/macos/source/recurse.h

Tags: 6.12.8+dfsg-1
* New upstream release.
* Simplified debian/rules

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
**  IterateDirectory: File Manager directory iterator routines.
3
 
**
4
 
**  by Jim Luther
5
 
**
6
 
**  File:       IterateDirectory.h
7
 
**
8
 
**  Copyright (c) 1995-1998 Jim Luther and Apple Computer, Inc.
9
 
**  All rights reserved.
10
 
**
11
 
**  You may incorporate this sample code into your applications without
12
 
**  restriction, though the sample code has been provided "AS IS" and the
13
 
**  responsibility for its operation is 100% yours.
14
 
**
15
 
**  IterateDirectory is designed to drop into the MoreFiles sample code
16
 
**  library I wrote while in Apple Developer Technical Support
17
 
*/
18
 
 
19
 
#ifndef __RECURSEDIRECTORY__
20
 
#define __RECURSEDIRECTORY__
21
 
 
22
 
#include <Types.h>
23
 
#include <Files.h>
24
 
 
25
 
 
26
 
#ifdef __cplusplus
27
 
extern "C" {
28
 
#endif
29
 
 
30
 
 
31
 
/*****************************************************************************/
32
 
 
33
 
pascal  OSErr   RecurseDirectory(short vRefNum,
34
 
                                 long dirID,
35
 
                                 ConstStr255Param name,
36
 
                                 unsigned short maxLevels );
37
 
/*   Iterate (scan) through a directory's content.
38
 
    The IterateDirectory function performs a recursive iteration (scan) of
39
 
    the specified directory and calls your IterateFilterProc function once
40
 
    for each file and directory found.
41
 
 
42
 
    The maxLevels parameter lets you control how deep the recursion goes.
43
 
    If maxLevels is 1, IterateDirectory only scans the specified directory;
44
 
    if maxLevels is 2, IterateDirectory scans the specified directory and
45
 
    one subdirectory below the specified directory; etc. Set maxLevels to
46
 
    zero to scan all levels.
47
 
 
48
 
    The yourDataPtr parameter can point to whatever data structure you might
49
 
    want to access from within the IterateFilterProc.
50
 
 
51
 
    vRefNum         input:  Volume specification.
52
 
    dirID           input:  Directory ID.
53
 
    name            input:  Pointer to object name, or nil when dirID
54
 
                            specifies a directory that's the object.
55
 
    maxLevels       input:  Maximum number of directory levels to scan or
56
 
                            zero to scan all directory levels.
57
 
    iterateFilter   input:  A pointer to the routine you want called once
58
 
                            for each file and directory found by
59
 
                            IterateDirectory.
60
 
    yourDataPtr     input:  A pointer to whatever data structure you might
61
 
                            want to access from within the IterateFilterProc.
62
 
 
63
 
    Result Codes
64
 
        noErr               0       No error
65
 
        nsvErr              -35     No such volume
66
 
        ioErr               -36     I/O error
67
 
        bdNamErr            -37     Bad filename
68
 
        fnfErr              -43     File not found
69
 
        paramErr            -50     No default volume or iterateFilter was NULL
70
 
        dirNFErr            -120    Directory not found or incomplete pathname
71
 
                                    or a file was passed instead of a directory
72
 
        afpAccessDenied     -5000   User does not have the correct access
73
 
        afpObjectTypeErr    -5025   Directory not found or incomplete pathname
74
 
 
75
 
    __________
76
 
 
77
 
    See also:   RecurseFilterProcPtr, FSpRecurseDirectory
78
 
*/
79
 
 
80
 
/*****************************************************************************/
81
 
 
82
 
pascal  OSErr   FSpRecurseDirectory(const FSSpec *spec,
83
 
                                    unsigned short maxLevels);
84
 
/*   Iterate (scan) through a directory's content.
85
 
    The FSpIterateDirectory function performs a recursive iteration (scan)
86
 
    of the specified directory and calls your IterateFilterProc function once
87
 
    for each file and directory found.
88
 
 
89
 
    The maxLevels parameter lets you control how deep the recursion goes.
90
 
    If maxLevels is 1, FSpIterateDirectory only scans the specified directory;
91
 
    if maxLevels is 2, FSpIterateDirectory scans the specified directory and
92
 
    one subdirectory below the specified directory; etc. Set maxLevels to
93
 
    zero to scan all levels.
94
 
 
95
 
    The yourDataPtr parameter can point to whatever data structure you might
96
 
    want to access from within the IterateFilterProc.
97
 
 
98
 
    spec            input:  An FSSpec record specifying the directory to scan.
99
 
    maxLevels       input:  Maximum number of directory levels to scan or
100
 
                            zero to scan all directory levels.
101
 
    iterateFilter   input:  A pointer to the routine you want called once
102
 
                            for each file and directory found by
103
 
                            FSpIterateDirectory.
104
 
    yourDataPtr     input:  A pointer to whatever data structure you might
105
 
                            want to access from within the IterateFilterProc.
106
 
 
107
 
    Result Codes
108
 
        noErr               0       No error
109
 
        nsvErr              -35     No such volume
110
 
        ioErr               -36     I/O error
111
 
        bdNamErr            -37     Bad filename
112
 
        fnfErr              -43     File not found
113
 
        paramErr            -50     No default volume or iterateFilter was NULL
114
 
        dirNFErr            -120    Directory not found or incomplete pathname
115
 
        afpAccessDenied     -5000   User does not have the correct access
116
 
        afpObjectTypeErr    -5025   Directory not found or incomplete pathname
117
 
 
118
 
    __________
119
 
 
120
 
    See also:   RecurseFilterProcPtr, RecurseDirectory
121
 
*/
122
 
 
123
 
 
124
 
 
125
 
/*****************************************************************************/
126
 
 
127
 
 
128
 
 
129
 
#endif /* __RECURSEDIRECTORY__ */