1 /******************************************************************************* 2 3 Copyright: 4 Copyright (c) 2005 Kris Bell. 5 Some parts copyright (c) 2009-2016 dunnhumby Germany GmbH. 6 All rights reserved. 7 8 License: 9 Tango Dual License: 3-Clause BSD License / Academic Free License v3.0. 10 See LICENSE_TANGO.txt for details. 11 12 Version: Initial release: March 2005 13 14 Authors: Kris 15 16 *******************************************************************************/ 17 18 module ocean.io.model.IFile; 19 20 import ocean.meta.types.Qualifiers; 21 22 /******************************************************************************* 23 24 Generic file-oriented attributes. 25 26 *******************************************************************************/ 27 28 public interface FileConst 29 { 30 /*************************************************************************** 31 32 A set of file-system specific constants for file and path separators 33 (chars and strings). 34 35 ***************************************************************************/ 36 37 enum : char 38 { 39 /// The current directory character. 40 CurrentDirChar = '.', 41 42 /// The file separator character. 43 FileSeparatorChar = '.', 44 45 /// The path separator character. 46 PathSeparatorChar = '/', 47 48 /// The system path character. 49 SystemPathChar = ':', 50 } 51 52 /// The parent directory string. 53 static immutable ParentDirString = ".."; 54 55 /// The current directory string. 56 static immutable CurrentDirString = "."; 57 58 /// The file separator string. 59 static immutable FileSeparatorString = "."; 60 61 /// The path separator string. 62 static immutable PathSeparatorString = "/"; 63 64 /// The system path string. 65 static immutable SystemPathString = ":"; 66 67 /// The newline string. 68 static immutable NewlineString = "\n"; 69 } 70 71 /******************************************************************************* 72 73 Passed around during file-scanning. 74 75 *******************************************************************************/ 76 77 public struct FileInfo 78 { 79 public istring path; 80 public istring name; 81 public ulong bytes; 82 public bool folder; 83 public bool hidden; 84 public bool system; 85 }