annotate mayachemtools/docs/modules/txt/FileUtil.txt @ 9:ab29fa5c8c1f draft default tip

Uploaded
author deepakjadmin
date Thu, 15 Dec 2016 14:18:03 -0500
parents 73ae111cf86f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1 NAME
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
2 FileUtil
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
3
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
4 SYNOPSIS
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
5 use FileUtil;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
6
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
7 use FileUtil qw(:all);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
8
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
9 DESCRIPTION
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
10 FileUtil module provides the following functions:
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
11
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
12 CheckFileType, ConvertCygwinPath, ExpandFileNames,
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
13 FileModificationTimeAndDate, FileSize, FormatFileSize,
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
14 FormattedFileModificationTimeAndDate, GetMayaChemToolsLibDirName,
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
15 GetUsageFromPod, ParseFileName
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
16
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
17 FUNCTIONS
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
18 CheckFileType
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
19 $Status = CheckFileType($FileName, $FileExts);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
20
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
21 Based on *FileExts*, decides type of *FileName* and return 1 or 0.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
22
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
23 ConvertCygwinPath
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
24 $NewPath = ConvertCygwinPath($Path);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
25
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
26 Check to see whether *Path* contains any Cygwin drive specification
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
27 and convert it into Windows path.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
28
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
29 ExpandFileNames
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
30 @FilesList = ExpandFileNames(\@Files, $FileExts);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
31 @FilesList = ExpandFileNames(\@Files, $FileExts, $IncludeDirName);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
32
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
33 For each directory name or wild card file name in *Files*, generate
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
34 all file names which correspond to the specification along with
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
35 match to any extensions in *FileExts* and return an array FileList
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
36 containing these file names and other names. *IncludeDirName*
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
37 controls controls whether directory prefixes are included in
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
38 expanded file names. Default is to always append directory name
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
39 before expanded file name.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
40
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
41 Notes:
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
42
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
43 . Multiple file extensions are delimited by spaces.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
44 . Wild card, *, is supported in directory and file names along with file
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
45 extensions.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
46 . For a specified directory name in the files list, all the files in the
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
47 directory are retrieved using Perl opendir function and files filtered using file
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
48 extensions. The file names "." and ".." returned by opendir are ignored.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
49 . For file names containing wild cards with and without any explicit file
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
50 extension specification in the file name, all the files in the directory are retrieved
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
51 using Perl opendir function and files filtered using file name along with any
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
52 file extension. The file names "." and ".." returned by opendir are ignored.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
53
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
54 FormattedFileModificationTimeAndDate
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
55 ($TimeString, $DateString) =
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
56 FormattedFileModificationTimeAndDate($FileName);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
57
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
58 Returns a formatted time and date string corresponding to *FileName*
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
59 modification time.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
60
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
61 FileModificationTimeAndDate
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
62 ($Hours, $Mins, $Secs, $DayName, $MonthName, $Month, $Year) =
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
63 FileModificationTimeAndDate($FileName);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
64
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
65 Returns file modification time and date values for specified
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
66 *FileName*.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
67
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
68 FormatFileSize
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
69 $FormattedSize= FormatFileSize($Size, [$Precision]);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
70
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
71 Formats the file size in bytes to human readable value and returns a
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
72 formatted file size string.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
73
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
74 FileSize
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
75 $Size= FileSize($FileName);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
76
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
77 Returns size of *FileName* in bytes
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
78
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
79 GetMayaChemToolsLibDirName
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
80 $MayaChemToolsLibDir = GetMayaChemToolsLibDirName();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
81
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
82 Returns MayaChemTools lib directory name by parsing INC values to
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
83 extract MAYACHEMTOOLS/lib directory location: first entry in INC
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
84 path should contain MayaChemTools lib location.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
85
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
86 GetUsageFromPod
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
87 $ScriptUsage = GetUsageFromPod($AbsoluteScriptPath);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
88
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
89 Generates a ScriptUsage string from pod documentation in the script
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
90 file using pod2text or perdoc.bat Perl utitities.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
91
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
92 ParseFileName
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
93 ($FileDir, $FileName, $FileExt) = ParseFileName($FullFileName);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
94
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
95 Splits *FullFileName* into directory name, file name, and extension.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
96 FileDir is set to current directory for absent directory name in
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
97 *FullFileName*. And *FileExt* is set to NULL string for
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
98 *FullFileName* without any extension.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
99
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
100 This function doesn't perform checking ragarding the presence of the
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
101 directory *FileDir* and *FullFileName* and the *FullFileName*
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
102 without any extension is assumed to be a file instead of a
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
103 directory.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
104
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
105 AUTHOR
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
106 Manish Sud <msud@san.rr.com>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
107
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
108 SEE ALSO
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
109 TextUtil.pm, TimeUtil.pm
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
110
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
111 COPYRIGHT
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
112 Copyright (C) 2015 Manish Sud. All rights reserved.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
113
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
114 This file is part of MayaChemTools.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
115
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
116 MayaChemTools is free software; you can redistribute it and/or modify it
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
117 under the terms of the GNU Lesser General Public License as published by
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
118 the Free Software Foundation; either version 3 of the License, or (at
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
119 your option) any later version.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
120