OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 part of dart.io; | 5 part of dart.io; |
6 | 6 |
7 /** | 7 /** |
8 * [Link] objects are references to filesystem links. | 8 * [Link] objects are references to filesystem links. |
9 * | 9 * |
10 */ | 10 */ |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
74 | 74 |
75 /** | 75 /** |
76 * Synchronously deletes the link. This does not delete, or otherwise | 76 * Synchronously deletes the link. This does not delete, or otherwise |
77 * affect, the target of the link. It also works on broken links, but if | 77 * affect, the target of the link. It also works on broken links, but if |
78 * the link does not exist or is not actually a link, it throws a | 78 * the link does not exist or is not actually a link, it throws a |
79 * LinkException. | 79 * LinkException. |
80 */ | 80 */ |
81 void deleteSync(); | 81 void deleteSync(); |
82 | 82 |
83 /** | 83 /** |
| 84 * Renames this link. Returns a `Future<Link>` that completes |
| 85 * with a [Link] instance for the renamed link. |
| 86 * |
| 87 * If [newPath] identifies an existing link, that link is |
| 88 * replaced. If [newPath] identifies an existing file or directory, |
| 89 * the operation fails and the future completes with an exception. |
| 90 */ |
| 91 Future<Link> rename(String newPath); |
| 92 |
| 93 /** |
| 94 * Synchronously renames this link. Returns a [Link] |
| 95 * instance for the renamed link. |
| 96 * |
| 97 * If [newPath] identifies an existing link, that link is |
| 98 * replaced. If [newPath] identifies an existing file or directory |
| 99 * the operation fails and an exception is thrown. |
| 100 */ |
| 101 Link renameSync(String newPath); |
| 102 |
| 103 /** |
84 * Gets the target of the link. Returns a future that completes with | 104 * Gets the target of the link. Returns a future that completes with |
85 * the path to the target. | 105 * the path to the target. |
86 * | 106 * |
87 * If the returned target is a relative path, it is relative to the | 107 * If the returned target is a relative path, it is relative to the |
88 * directory containing the link. | 108 * directory containing the link. |
89 * | 109 * |
90 * If the link does not exist, or is not a link, the future completes with | 110 * If the link does not exist, or is not a link, the future completes with |
91 * a LinkException. | 111 * a LinkException. |
92 */ | 112 */ |
93 Future<String> target(); | 113 Future<String> target(); |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
188 } | 208 } |
189 return this; | 209 return this; |
190 }); | 210 }); |
191 } | 211 } |
192 | 212 |
193 void deleteSync() { | 213 void deleteSync() { |
194 var result = _File._deleteLink(path); | 214 var result = _File._deleteLink(path); |
195 throwIfError(result, "Cannot delete link", path); | 215 throwIfError(result, "Cannot delete link", path); |
196 } | 216 } |
197 | 217 |
| 218 Future<Link> rename(String newPath) { |
| 219 _ensureFileService(); |
| 220 List request = new List(3); |
| 221 request[0] = _RENAME_LINK_REQUEST; |
| 222 request[1] = path; |
| 223 request[2] = newPath; |
| 224 return _fileService.call(request).then((response) { |
| 225 if (_isErrorResponse(response)) { |
| 226 throw _exceptionFromResponse( |
| 227 response, "Cannot rename link '$_path' to '$newPath'"); |
| 228 } |
| 229 return new Link(newPath); |
| 230 }); |
| 231 } |
| 232 |
| 233 Link renameSync(String newPath) { |
| 234 var result = _File._renameLink(path, newPath); |
| 235 throwIfError(result, "Cannot rename link '$path' to '$newPath'"); |
| 236 return new Link(newPath); |
| 237 } |
| 238 |
198 Future<String> target() { | 239 Future<String> target() { |
199 _ensureFileService(); | 240 _ensureFileService(); |
200 List request = new List(2); | 241 List request = new List(2); |
201 request[0] = _LINK_TARGET_REQUEST; | 242 request[0] = _LINK_TARGET_REQUEST; |
202 request[1] = path; | 243 request[1] = path; |
203 return _fileService.call(request).then((response) { | 244 return _fileService.call(request).then((response) { |
204 if (_isErrorResponse(response)) { | 245 if (_isErrorResponse(response)) { |
205 throw _exceptionFromResponse(response, | 246 throw _exceptionFromResponse(response, |
206 "Cannot get target of link '$path'"); | 247 "Cannot get target of link '$path'"); |
207 } | 248 } |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
267 if (path != null) { | 308 if (path != null) { |
268 sb.write(", path = $path"); | 309 sb.write(", path = $path"); |
269 } | 310 } |
270 } | 311 } |
271 return sb.toString(); | 312 return sb.toString(); |
272 } | 313 } |
273 final String message; | 314 final String message; |
274 final String path; | 315 final String path; |
275 final OSError osError; | 316 final OSError osError; |
276 } | 317 } |
OLD | NEW |