win32-dir 0.4.7 → 0.7.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/lib/win32-dir.rb +1 -0
- data/lib/win32/dir.rb +185 -173
- data/lib/win32/dir/constants.rb +6 -3
- data/lib/win32/dir/functions.rb +17 -17
- data/lib/win32/dir/structs.rb +1 -1
- data/lib/win32/dir/version.rb +6 -0
- metadata +13 -51
- data/CHANGES +0 -98
- data/MANIFEST +0 -8
- data/README +0 -273
- data/Rakefile +0 -38
- data/examples/dir_example.rb +0 -23
- data/test/test_win32_dir.rb +0 -452
- data/win32-dir.gemspec +0 -30
data/lib/win32/dir/constants.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require "ffi" unless defined?(FFI)
|
2
2
|
|
3
3
|
module Dir::Constants
|
4
4
|
include FFI::Library
|
@@ -18,6 +18,9 @@ module Dir::Constants
|
|
18
18
|
SHGFI_DISPLAYNAME = 0x000000200
|
19
19
|
SHGFI_PIDL = 0x000000008
|
20
20
|
|
21
|
-
|
22
|
-
INVALID_FILE_ATTRIBUTES =
|
21
|
+
# ((DWORD)-1)
|
22
|
+
INVALID_FILE_ATTRIBUTES = 0xFFFFFFFF
|
23
|
+
|
24
|
+
# ((HANDLE)-1)
|
25
|
+
INVALID_HANDLE_VALUE = FFI::Pointer.new(-1).address
|
23
26
|
end
|
data/lib/win32/dir/functions.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
# Necessary to force JRuby to use the gem, not its builtin version
|
2
|
-
if RUBY_PLATFORM ==
|
3
|
-
require
|
4
|
-
gem
|
2
|
+
if RUBY_PLATFORM == "java"
|
3
|
+
require "rubygems" unless defined?(Gem)
|
4
|
+
gem "ffi"
|
5
5
|
end
|
6
6
|
|
7
|
-
require
|
7
|
+
require "ffi" unless defined?(FFI)
|
8
8
|
|
9
9
|
module Dir::Functions
|
10
10
|
module FFI::Library
|
@@ -25,9 +25,9 @@ module Dir::Functions
|
|
25
25
|
ffi_lib :shell32
|
26
26
|
ffi_convention :stdcall
|
27
27
|
|
28
|
-
attach_pfunc :SHGetFolderPathW,
|
29
|
-
attach_pfunc :SHGetFolderLocation,
|
30
|
-
attach_pfunc :SHGetFileInfo,
|
28
|
+
attach_pfunc :SHGetFolderPathW, %i{hwnd int handle dword buffer_out}, :dword
|
29
|
+
attach_pfunc :SHGetFolderLocation, %i{hwnd int handle dword ptr}, :dword
|
30
|
+
attach_pfunc :SHGetFileInfo, %i{uint64 dword ptr uint uint}, :dword
|
31
31
|
|
32
32
|
ffi_lib :shlwapi
|
33
33
|
ffi_convention :stdcall
|
@@ -38,15 +38,15 @@ module Dir::Functions
|
|
38
38
|
ffi_convention :stdcall
|
39
39
|
|
40
40
|
attach_pfunc :CloseHandle, [:handle], :bool
|
41
|
-
attach_pfunc :CreateDirectoryW,
|
42
|
-
attach_pfunc :CreateFileW,
|
43
|
-
attach_pfunc :DeviceIoControl,
|
44
|
-
attach_pfunc :GetCurrentDirectoryW,
|
41
|
+
attach_pfunc :CreateDirectoryW, %i{buffer_in ptr}, :bool
|
42
|
+
attach_pfunc :CreateFileW, %i{buffer_in dword dword ptr dword dword handle}, :handle
|
43
|
+
attach_pfunc :DeviceIoControl, %i{handle dword ptr dword ptr dword ptr ptr}, :bool
|
44
|
+
attach_pfunc :GetCurrentDirectoryW, %i{dword buffer_out}, :dword
|
45
45
|
attach_pfunc :GetFileAttributesW, [:buffer_in], :dword
|
46
46
|
attach_pfunc :GetLastError, [], :dword
|
47
|
-
attach_pfunc :GetShortPathNameW,
|
48
|
-
attach_pfunc :GetLongPathNameW,
|
49
|
-
attach_pfunc :GetFullPathNameW,
|
47
|
+
attach_pfunc :GetShortPathNameW, %i{buffer_in buffer_out dword}, :dword
|
48
|
+
attach_pfunc :GetLongPathNameW, %i{buffer_in buffer_out dword}, :dword
|
49
|
+
attach_pfunc :GetFullPathNameW, %i{buffer_in dword buffer_out ptr}, :dword
|
50
50
|
attach_pfunc :RemoveDirectoryW, [:buffer_in], :bool
|
51
51
|
end
|
52
52
|
|
@@ -54,13 +54,13 @@ class String
|
|
54
54
|
# Convenience method for converting strings to UTF-16LE for wide character
|
55
55
|
# functions that require it.
|
56
56
|
def wincode
|
57
|
-
(
|
57
|
+
(tr(File::SEPARATOR, File::ALT_SEPARATOR) + 0.chr).encode("UTF-16LE")
|
58
58
|
end
|
59
59
|
|
60
60
|
# Read a wide character string up until the first double null, and delete
|
61
61
|
# any remaining null characters.
|
62
62
|
def wstrip
|
63
|
-
|
64
|
-
|
63
|
+
force_encoding("UTF-16LE").encode("UTF-8", invalid: :replace, undef: :replace)
|
64
|
+
.split("\x00")[0].encode(Encoding.default_external)
|
65
65
|
end
|
66
66
|
end
|
data/lib/win32/dir/structs.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: win32-dir
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel J. Berger
|
@@ -9,50 +9,22 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2020-11-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: ffi
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- -
|
18
|
+
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: 1.0.0
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- -
|
25
|
+
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: 1.0.0
|
28
|
-
- !ruby/object:Gem::Dependency
|
29
|
-
name: rake
|
30
|
-
requirement: !ruby/object:Gem::Requirement
|
31
|
-
requirements:
|
32
|
-
- - '>='
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version: '0'
|
35
|
-
type: :development
|
36
|
-
prerelease: false
|
37
|
-
version_requirements: !ruby/object:Gem::Requirement
|
38
|
-
requirements:
|
39
|
-
- - '>='
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
version: '0'
|
42
|
-
- !ruby/object:Gem::Dependency
|
43
|
-
name: test-unit
|
44
|
-
requirement: !ruby/object:Gem::Requirement
|
45
|
-
requirements:
|
46
|
-
- - '>='
|
47
|
-
- !ruby/object:Gem::Version
|
48
|
-
version: 2.4.0
|
49
|
-
type: :development
|
50
|
-
prerelease: false
|
51
|
-
version_requirements: !ruby/object:Gem::Requirement
|
52
|
-
requirements:
|
53
|
-
- - '>='
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version: 2.4.0
|
56
28
|
description: |2
|
57
29
|
The win32-dir library provides extra methods and constants for the
|
58
30
|
builtin Dir class. The constants provide a convenient way to identify
|
@@ -62,23 +34,15 @@ description: |2
|
|
62
34
|
email: djberg96@gmail.com
|
63
35
|
executables: []
|
64
36
|
extensions: []
|
65
|
-
extra_rdoc_files:
|
66
|
-
- README
|
67
|
-
- CHANGES
|
68
|
-
- MANIFEST
|
37
|
+
extra_rdoc_files: []
|
69
38
|
files:
|
70
|
-
-
|
71
|
-
- MANIFEST
|
72
|
-
- README
|
73
|
-
- Rakefile
|
74
|
-
- examples/dir_example.rb
|
39
|
+
- lib/win32-dir.rb
|
75
40
|
- lib/win32/dir.rb
|
76
41
|
- lib/win32/dir/constants.rb
|
77
42
|
- lib/win32/dir/functions.rb
|
78
43
|
- lib/win32/dir/structs.rb
|
79
|
-
-
|
80
|
-
|
81
|
-
homepage: http://github.com/djberg96/win32-dir
|
44
|
+
- lib/win32/dir/version.rb
|
45
|
+
homepage: https://github.com/chef/win32-dir
|
82
46
|
licenses:
|
83
47
|
- Artistic 2.0
|
84
48
|
metadata: {}
|
@@ -88,19 +52,17 @@ require_paths:
|
|
88
52
|
- lib
|
89
53
|
required_ruby_version: !ruby/object:Gem::Requirement
|
90
54
|
requirements:
|
91
|
-
- -
|
55
|
+
- - ">="
|
92
56
|
- !ruby/object:Gem::Version
|
93
|
-
version:
|
57
|
+
version: '2.4'
|
94
58
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
95
59
|
requirements:
|
96
|
-
- -
|
60
|
+
- - ">="
|
97
61
|
- !ruby/object:Gem::Version
|
98
62
|
version: '0'
|
99
63
|
requirements: []
|
100
|
-
|
101
|
-
rubygems_version: 2.2.2
|
64
|
+
rubygems_version: 3.0.3
|
102
65
|
signing_key:
|
103
66
|
specification_version: 4
|
104
67
|
summary: Extra constants and methods for the Dir class on Windows.
|
105
|
-
test_files:
|
106
|
-
- test/test_win32_dir.rb
|
68
|
+
test_files: []
|
data/CHANGES
DELETED
@@ -1,98 +0,0 @@
|
|
1
|
-
== 0.4.7 - 26-Apr-2014
|
2
|
-
* All arguments to methods are now interpolated so that they'll use whatever
|
3
|
-
to_str implemenation the argument provides instead of assuming String
|
4
|
-
arguments. This change was made because it turns out that at least some
|
5
|
-
of the overridden methods in MRI accept Pathname objects. Thanks go to
|
6
|
-
Josh Cooper/Puppet Labs for the spot.
|
7
|
-
* Refactored the Dir.getwd method to use bonafide FFI buffers instead of
|
8
|
-
naked Ruby char buffers.
|
9
|
-
* Internally various functions now fail in the event that the resulting
|
10
|
-
paths would exceed their buffers.
|
11
|
-
|
12
|
-
== 0.4.6 - 21-Oct-2013
|
13
|
-
* Fixed the INVALID_HANDLE_VALUE and INVALID_FILE_ATTRIBUTES constants for
|
14
|
-
64-bit versions of Ruby.
|
15
|
-
* Added Rake as a development dependency.
|
16
|
-
|
17
|
-
== 0.4.5 - 23-Sep-2013
|
18
|
-
* Yet another encoding fix, this time one that affected JRuby.
|
19
|
-
* Fixed the Dir[] and Dir.glob methods so they match the spec. Thanks go
|
20
|
-
to Chris Westbrook for the spot.
|
21
|
-
|
22
|
-
== 0.4.4 - 22-Sep-2013
|
23
|
-
* Yet another encoding fix. Thanks go to Rob Reynolds for the patch.
|
24
|
-
|
25
|
-
== 0.4.3 - 24-Jul-2013
|
26
|
-
* Changed the Dir.read_junction and CSIDL constant strings so that they
|
27
|
-
use the default external encoding instead of UTF-16LE. This means that
|
28
|
-
they will now work with methods like File.join. Thanks go to Josh Cooper
|
29
|
-
for the patches.
|
30
|
-
* Some changes for internal handling of making FFI functions private.
|
31
|
-
* Updated gem:create task for rubygems 2.
|
32
|
-
|
33
|
-
== 0.4.2 - 8-Apr-2013
|
34
|
-
* Fixed the HANDLE function prototypes in the underlying FFI code and added
|
35
|
-
some custom typedefs for convenience. This affects 64 bit Ruby code.
|
36
|
-
|
37
|
-
== 0.4.1 - 2-Oct-2012
|
38
|
-
* Added the Dir.read_junction method. Thanks go to Gabriel Wilkins for the patch.
|
39
|
-
|
40
|
-
== 0.4.0 - 29-Jun-2012
|
41
|
-
* Conversion to FFI. Should work with JRuby now.
|
42
|
-
* If current versions of Dir::XXX constant values cannot be found
|
43
|
-
then default values are tried.
|
44
|
-
* Now requires Ruby 1.9 or later.
|
45
|
-
|
46
|
-
== 0.3.7 - 18-Jul-2010
|
47
|
-
* Modified Dir.glob and Dir[] to handle backslashes in path names.
|
48
|
-
* Added tests for the modified Dir.glob and Dir[] behavior.
|
49
|
-
* Removed the old non-gem install Rake task.
|
50
|
-
|
51
|
-
== 0.3.6 - 6-Feb-2010
|
52
|
-
* Bug fixes for Ruby 1.9.x. Thanks go to Kendall Gifford for the spot and
|
53
|
-
the patch.
|
54
|
-
* Minor refactoring of the Dir.create_junction method. This fixed a bug for
|
55
|
-
Ruby 1.9.x, but was also a little cleaner in general.
|
56
|
-
* Some Rakefile task and gemspec updates.
|
57
|
-
|
58
|
-
== 0.3.5 - 6-Aug-2009
|
59
|
-
* Changed the license to Artistic 2.0.
|
60
|
-
* Updated the gemspec, including the addition of a license attribute and
|
61
|
-
test-unit as a development dependency.
|
62
|
-
|
63
|
-
== 0.3.4 - 5-May-2009
|
64
|
-
* Redefined the Dir.getwd (and the Dir.pwd alias) to always return a
|
65
|
-
normalized path.
|
66
|
-
* Some gemspec updates.
|
67
|
-
|
68
|
-
== 0.3.3 - 30-Mar-2009
|
69
|
-
* Virtual folders like Dir::CONTROL, which were previously almost always nil,
|
70
|
-
are now set to their display name.
|
71
|
-
* Fixed a bug in the create_junction method.
|
72
|
-
* Added an 'example' rake task to run the example code.
|
73
|
-
* Renamed the example program from dir_test.rb to dir_example.rb to prevent
|
74
|
-
any potential confusion that it's a genuine test file.
|
75
|
-
|
76
|
-
== 0.3.2 - 25-Jul-2007
|
77
|
-
* Added a Rakefile with tasks for testing and installation.
|
78
|
-
* Removed the install.rb file (the Rakefile handles installation).
|
79
|
-
* Minor updates the README, MANIFEST, and test file.
|
80
|
-
|
81
|
-
== 0.3.1 - 16-Oct-2006
|
82
|
-
* Added the Dir.empty? method.
|
83
|
-
* Changed the Dir.reparse_dir? method to Dir.junction? (but kept an alias
|
84
|
-
for backwards compatibility).
|
85
|
-
* Added rdoc for Dir.junction? (oops).
|
86
|
-
* Some test tweaks and additions.
|
87
|
-
|
88
|
-
== 0.3.0 - 28-May-2006
|
89
|
-
* Now pure Ruby.
|
90
|
-
* Now has a gem.
|
91
|
-
* Added a VERSION constant.
|
92
|
-
|
93
|
-
== 0.2.0 - 27-Jun-2005
|
94
|
-
* Added the Dir.create_junction and Dir.reparse_dir? methods.
|
95
|
-
* Added corresponding tests and documentation.
|
96
|
-
|
97
|
-
== 0.1.0 - 25-Feb-2005
|
98
|
-
* Initial release
|
data/MANIFEST
DELETED
data/README
DELETED
@@ -1,273 +0,0 @@
|
|
1
|
-
= Description
|
2
|
-
A series of extra constants for the Dir class that define special folders
|
3
|
-
on MS Windows systems, as well as methods for creating and detecting
|
4
|
-
junctions, i.e. symlinks for directories.
|
5
|
-
|
6
|
-
= Installation
|
7
|
-
gem install win32-dir
|
8
|
-
|
9
|
-
= Synopsis
|
10
|
-
require 'win32/dir'
|
11
|
-
|
12
|
-
# C:\WINNT or C:\WINDOWS
|
13
|
-
puts Dir::WINDOWS
|
14
|
-
|
15
|
-
# C:\Documents and Settings\Daniel\Start Menu\Programs\Administrative Tools
|
16
|
-
puts Dir::ADMINTOOLS
|
17
|
-
|
18
|
-
Dir.mkdir('C:\from')
|
19
|
-
Dir.create_junction('C:\to', 'C:\from')
|
20
|
-
|
21
|
-
= Constants
|
22
|
-
Not all of these are guaranteed to be defined on your system. Also note
|
23
|
-
that the directories are merely defined. It doesn't necessarily mean they
|
24
|
-
actually exist.
|
25
|
-
|
26
|
-
== The following constants should be defined:
|
27
|
-
Dir::ADMINTOOLS
|
28
|
-
The file system directory that is used to store administrative tools for an
|
29
|
-
individual user. The Microsoft Management Console (MMC) will save
|
30
|
-
customized consoles to this directory, and it will roam with the user.
|
31
|
-
|
32
|
-
Dir::COMMON_ADMINTOOLS
|
33
|
-
The file system directory containing administrative tools for all users
|
34
|
-
of the computer.
|
35
|
-
|
36
|
-
Dir::APPDATA
|
37
|
-
The file system directory that serves as a common repository for
|
38
|
-
application-specific data. A typical path is
|
39
|
-
C:\Documents and Settings\<user>\Application Data.
|
40
|
-
|
41
|
-
This CSIDL is supported by the redistributable shfolder.dll for
|
42
|
-
systems that do not have the Microsoft Internet Explorer 4.0
|
43
|
-
integrated Shell installed.
|
44
|
-
|
45
|
-
Dir::COMMON_APPDATA
|
46
|
-
The file system directory containing application data for all users. A
|
47
|
-
typical path is C:\Documents and Settings\All Users\Application Data.
|
48
|
-
|
49
|
-
Dir::COMMON_DOCUMENTS
|
50
|
-
The file system directory that contains documents that are common to all
|
51
|
-
users. A typical paths is C:\Documents and Settings\All Users\Documents.
|
52
|
-
|
53
|
-
Dir::COOKIES
|
54
|
-
The file system directory that serves as a common repository for Internet
|
55
|
-
cookies. A typical path is C:\Documents and Settings\<user>\Cookies.
|
56
|
-
|
57
|
-
Dir::HISTORY
|
58
|
-
The file system directory that serves as a common repository for Internet
|
59
|
-
history items.
|
60
|
-
|
61
|
-
Dir::INTERNET_CACHE
|
62
|
-
The file system directory that serves as a common repository for temporary
|
63
|
-
Internet files. A typical path is
|
64
|
-
C:\Documents and Settings\<user>\Local Settings\Temporary Internet Files.
|
65
|
-
|
66
|
-
Dir::LOCAL_APPDATA
|
67
|
-
The file system directory that serves as a data repository for local
|
68
|
-
(nonroaming) applications. A typical path is
|
69
|
-
C:\Documents and Settings\<user>\Local Settings\Application Data.
|
70
|
-
|
71
|
-
Dir::MYPICTURES
|
72
|
-
The file system directory that serves as a common repository for image
|
73
|
-
files. A typical path is
|
74
|
-
C:\Documents and Settings\<user>\My Documents\My Pictures.
|
75
|
-
|
76
|
-
Dir::PERSONAL
|
77
|
-
The virtual folder representing the My Documents desktop item. This is
|
78
|
-
equivalent to Dir::MYDOCUMENTS.
|
79
|
-
|
80
|
-
Dir::PROGRAM_FILES
|
81
|
-
The Program Files folder. A typical path is C:\Program Files.
|
82
|
-
|
83
|
-
Dir::PROGRAM_FILES_COMMON
|
84
|
-
A folder for components that are shared across applications. A typical path
|
85
|
-
is C:\Program Files\Common.
|
86
|
-
|
87
|
-
Dir::SYSTEM
|
88
|
-
The Windows System folder. A typical path is C:\Windows\System32.
|
89
|
-
|
90
|
-
Dir::WINDOWS
|
91
|
-
The Windows directory or SYSROOT. This corresponds to the %windir% or
|
92
|
-
%SYSTEMROOT% environment variables. A typical path is C:\Windows.
|
93
|
-
|
94
|
-
== The following constants may or may not be defined:
|
95
|
-
Dir::ALTSTARTUP
|
96
|
-
The file system directory that corresponds to the user's nonlocalized
|
97
|
-
Startup program group.
|
98
|
-
|
99
|
-
Dir::BITBUCKET
|
100
|
-
The virtual folder containing the objects in the user's Recycle Bin.
|
101
|
-
|
102
|
-
Dir::CDBURN_AREA
|
103
|
-
The file system directory acting as a staging area for files waiting to
|
104
|
-
be written to CD.
|
105
|
-
|
106
|
-
Dir::COMMON_ALTSTARTUP
|
107
|
-
The file system directory that corresponds to the nonlocalized Startup
|
108
|
-
program group for all users.
|
109
|
-
|
110
|
-
Dir::COMMON_DESKTOPDIRECTORY
|
111
|
-
The file system directory that contains files and folders that appear on
|
112
|
-
the desktop for all users. A typical path is
|
113
|
-
C:\Documents and Settings\All Users\Desktop.
|
114
|
-
|
115
|
-
Dir::COMMON_FAVORITES
|
116
|
-
The file system directory that serves as a common repository for favorite
|
117
|
-
items common to all users.
|
118
|
-
|
119
|
-
Dir::COMMON_MUSIC
|
120
|
-
The file system directory that serves as a repository for music files
|
121
|
-
common to all users.
|
122
|
-
|
123
|
-
Dir::COMMON_PICTURES
|
124
|
-
The file system directory that serves as a repository for image files
|
125
|
-
common to all users.
|
126
|
-
|
127
|
-
Dir::COMMON_PROGRAMS
|
128
|
-
The file system directory that contains the directories for the common
|
129
|
-
program groups that appear on the Start menu for all users.
|
130
|
-
|
131
|
-
Dir::COMMON_STARTMENU
|
132
|
-
The file system directory that contains the programs and folders that
|
133
|
-
appear on the Start menu for all users.
|
134
|
-
|
135
|
-
Dir::COMMON_STARTUP
|
136
|
-
The file system directory that contains the programs that appear in the
|
137
|
-
Startup folder for all users.
|
138
|
-
|
139
|
-
Dir::COMMON_TEMPLATES
|
140
|
-
The file system directory that contains the templates that are available
|
141
|
-
to all users.
|
142
|
-
|
143
|
-
Dir::COMMON_VIDEO
|
144
|
-
The file system directory that serves as a repository for video files
|
145
|
-
common to all users.
|
146
|
-
|
147
|
-
Dir::CONTROLS
|
148
|
-
The virtual folder containing icons for the Control Panel applications.
|
149
|
-
|
150
|
-
Dir::DESKTOP
|
151
|
-
The virtual folder representing the Windows desktop, the root of the
|
152
|
-
namespace.
|
153
|
-
|
154
|
-
Dir::DESKTOPDIRECTORY
|
155
|
-
The file system directory used to physically store file objects on the
|
156
|
-
desktop (not to be confused with the desktop folder itself).
|
157
|
-
|
158
|
-
Dir::DRIVES
|
159
|
-
The virtual folder representing My Computer, containing everything on
|
160
|
-
the local computer: storage devices, printers, and Control Panel. The
|
161
|
-
folder may also contain mapped network drives.
|
162
|
-
|
163
|
-
Dir::FAVORITES
|
164
|
-
The file system directory that serves as a common repository for the
|
165
|
-
user's favorite items.
|
166
|
-
|
167
|
-
Dir::FONTS
|
168
|
-
A virtual folder containing fonts.
|
169
|
-
|
170
|
-
Dir::INTERNET
|
171
|
-
A virtual folder representing the Internet.
|
172
|
-
|
173
|
-
Dir::MYDOCUMENTS
|
174
|
-
The virtual folder representing the My Documents desktop item. See also
|
175
|
-
Dir::PERSONAL.
|
176
|
-
|
177
|
-
Dir::MYMUSIC
|
178
|
-
The file system directory that serves as a common repository for music files.
|
179
|
-
|
180
|
-
Dir::MYVIDEO
|
181
|
-
The file system directory that serves as a common repository for video files.
|
182
|
-
|
183
|
-
Dir::NETHOOD
|
184
|
-
A file system directory containing the link objects that may exist in the
|
185
|
-
My Network Places virtual folder. It is not the same as Dir::NETWORK, which
|
186
|
-
represents the network namespace root.
|
187
|
-
|
188
|
-
Dir::NETWORK
|
189
|
-
A virtual folder representing Network Neighborhood, the root of the network
|
190
|
-
namespace hierarchy.
|
191
|
-
|
192
|
-
Dir::PRINTERS
|
193
|
-
The virtual folder containing installed printers.
|
194
|
-
|
195
|
-
Dir::PRINTHOOD
|
196
|
-
The file system directory that contains the link objects that can exist in
|
197
|
-
the "Printers" virtual folder.
|
198
|
-
|
199
|
-
Dir::PROFILE
|
200
|
-
The user's profile folder.
|
201
|
-
|
202
|
-
Dir::PROFILES
|
203
|
-
The file system directory containing user profile folders.
|
204
|
-
|
205
|
-
Dir::PROGRAMS
|
206
|
-
The file system directory that contains the user's program groups (which
|
207
|
-
are themselves file system directories).
|
208
|
-
|
209
|
-
Dir::RECENT
|
210
|
-
The file system directory that contains shortcuts to the user's most
|
211
|
-
recently used documents.
|
212
|
-
|
213
|
-
Dir::SENDTO
|
214
|
-
The file system directory that contains Send To menu items.
|
215
|
-
|
216
|
-
Dir::STARTMENU
|
217
|
-
The file system directory containing Start menu items.
|
218
|
-
|
219
|
-
Dir::STARTUP
|
220
|
-
The file system directory that corresponds to the user's Startup program
|
221
|
-
group.
|
222
|
-
|
223
|
-
Dir::TEMPLATES
|
224
|
-
The file system directory that serves as a common repository for document
|
225
|
-
templates.
|
226
|
-
|
227
|
-
== Developer's Notes
|
228
|
-
The SHGetFolderPath() documentation on MSDN is somewhat vague about which
|
229
|
-
CSIDL constants are guaranteed to be defined. However, there are 15 which
|
230
|
-
*should* be defined (see docs above). The rest I cannot vouch for.
|
231
|
-
|
232
|
-
Some of these folders are virtual, and the value will be the display name
|
233
|
-
only instead of an actual path.
|
234
|
-
|
235
|
-
== Known Bugs
|
236
|
-
The Dir.create_junction and Dir.read_junction methods do not work with JRuby.
|
237
|
-
|
238
|
-
Please log any bug reports on the project page at
|
239
|
-
http://www.github.com/djberg96/win32-dir
|
240
|
-
|
241
|
-
== Future Plans
|
242
|
-
Suggestions welcome.
|
243
|
-
|
244
|
-
== Acknowledgements
|
245
|
-
Shashank Date and Zach Dennis for the suggestion and supporting comments
|
246
|
-
on the mailing list.
|
247
|
-
|
248
|
-
Timothy Byrd and Autrijus Tang for help (directly or indirectly) with the
|
249
|
-
junction methods. Timothy provided a pure Ruby version of the junction
|
250
|
-
code that I later borrowed from.
|
251
|
-
|
252
|
-
Most of the documentation was copied from the MSDN web site.
|
253
|
-
|
254
|
-
== License
|
255
|
-
Artistic 2.0
|
256
|
-
|
257
|
-
== Contributions
|
258
|
-
Although this library is free, please consider having your company
|
259
|
-
setup a gittip if used by your company professionally.
|
260
|
-
|
261
|
-
http://www.gittip.com/djberg96/
|
262
|
-
|
263
|
-
== Copyright
|
264
|
-
(C) 2003-2014 Daniel J. Berger, All Rights Reserved
|
265
|
-
|
266
|
-
== Warranty
|
267
|
-
This package is provided "as is" and without any express or
|
268
|
-
implied warranties, including, without limitation, the implied
|
269
|
-
warranties of merchantability and fitness for a particular purpose.
|
270
|
-
|
271
|
-
== Authors
|
272
|
-
Daniel J. Berger
|
273
|
-
Park Heesob
|