MiKTeX 23.10-next
A scalable TeX distribution
Loading...
Searching...
No Matches
Directory.h
1/* miktex/Core/Directory.h: -*- C++ -*-
2
3 Copyright (C) 1996-2023 Christian Schenk
4
5 This file is part of the MiKTeX Core Library.
6
7 The MiKTeX Core Library is free software; you can redistribute it
8 and/or modify it under the terms of the GNU General Public License
9 as published by the Free Software Foundation; either version 2, or
10 (at your option) any later version.
11
12 The MiKTeX Core Library is distributed in the hope that it will be
13 useful, but WITHOUT ANY WARRANTY; without even the implied warranty
14 of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with the MiKTeX Core Library; if not, write to the Free
19 Software Foundation, 59 Temple Place - Suite 330, Boston, MA
20 02111-1307, USA. */
21
22#pragma once
23
24#if !defined(EFF174AE02944E9C9B9B9F35E67C2E54)
25#define EFF174AE02944E9C9B9B9F35E67C2E54
26
27#include <miktex/Core/config.h>
28
29#include <ctime>
30
31#include <miktex/Util/OptionSet>
32#include <miktex/Util/PathName>
33
34MIKTEX_CORE_BEGIN_NAMESPACE;
35
38{
47};
48
49typedef MiKTeX::Util::OptionSet<DirectoryCopyOption> DirectoryCopyOptionSet;
50
54class MIKTEXNOVTABLE Directory
55{
56public:
57 Directory() = delete;
58
59public:
60 Directory(const Directory& other) = delete;
61
62public:
63 Directory& operator=(const Directory& other) = delete;
64
65public:
66 Directory(Directory&& other) = delete;
67
68public:
69 Directory& operator=(Directory&& other) = delete;
70
71public:
72 ~Directory() = delete;
73
76public:
77 static MIKTEXCORECEEAPI(void) Create(const MiKTeX::Util::PathName& path);
78
81public:
82 static MIKTEXCORECEEAPI(MiKTeX::Util::PathName) GetCurrent();
83
86public:
87 static MIKTEXCORECEEAPI(void) SetCurrent(const MiKTeX::Util::PathName& path);
88
91public:
92 static MIKTEXCORECEEAPI(void) Delete(const MiKTeX::Util::PathName& path);
93
97public:
98 static MIKTEXCORECEEAPI(void) Delete(const MiKTeX::Util::PathName& path, bool recursive);
99
104public:
105 static MIKTEXCORECEEAPI(void) Copy(const MiKTeX::Util::PathName& source, const MiKTeX::Util::PathName& dest, DirectoryCopyOptionSet options);
106
109public:
110 static MIKTEXCORECEEAPI(bool) Exists(const MiKTeX::Util::PathName& path);
111
117public:
118 static MIKTEXCORECEEAPI(void) SetTimes(const MiKTeX::Util::PathName& path, time_t creationTime, time_t lastAccessTime, time_t lastWriteTime);
119
123public:
124 static MIKTEXCORECEEAPI(void) Move(const MiKTeX::Util::PathName& source, const MiKTeX::Util::PathName& dest);
125
126public:
127 static MIKTEXCORECEEAPI(void) RemoveEmptyDirectoryChain(const MiKTeX::Util::PathName& path);
128};
129
130MIKTEX_CORE_END_NAMESPACE;
131
132#endif
Directory class.
Definition: Directory.h:55
static void Create(const MiKTeX::Util::PathName &path)
static bool Exists(const MiKTeX::Util::PathName &path)
static void Copy(const MiKTeX::Util::PathName &source, const MiKTeX::Util::PathName &dest, DirectoryCopyOptionSet options)
static void Move(const MiKTeX::Util::PathName &source, const MiKTeX::Util::PathName &dest)
static void SetCurrent(const MiKTeX::Util::PathName &path)
static void Delete(const MiKTeX::Util::PathName &path)
static MiKTeX::Util::PathName GetCurrent()
static void Delete(const MiKTeX::Util::PathName &path, bool recursive)
static void SetTimes(const MiKTeX::Util::PathName &path, time_t creationTime, time_t lastAccessTime, time_t lastWriteTime)
Definition: OptionSet.h:37
Instances of this class can be used to store path names.
Definition: PathName.h:73
DirectoryCopyOption
Directory copy options.
Definition: Directory.h:38
@ ReplaceExisting
Replace an existing directory.
@ UpdateFndb
Update the file name database.