Arcane  v3.16.4.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
Directory.cc
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* Directory.cc (C) 2000-2025 */
9/* */
10/* Gestion d'un répertoire. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#include "arcane/utils/String.h"
15#include "arcane/utils/StringBuilder.h"
16#include "arcane/utils/PlatformUtils.h"
17
18#include "arcane/core/Directory.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28
29static String
30_appendFile(const String& directory, const String& file)
31{
32 StringBuilder out_str(directory);
33#ifdef ARCANE_OS_WIN32
34 out_str += "\\";
35#else /* ARCANE_OS_WIN32 */
36 out_str += "/";
37#endif /* ARCANE_OS_WIN32 */
38 out_str += file;
39 return out_str.toString();
40}
41
42/*---------------------------------------------------------------------------*/
43/*---------------------------------------------------------------------------*/
44
45Directory::
46Directory(const String& path)
47: m_directory_path(path)
48{
49}
50
51/*---------------------------------------------------------------------------*/
52/*---------------------------------------------------------------------------*/
53
54Directory::
55Directory(const IDirectory& directory, const String& sub_path)
56: m_directory_path(_appendFile(directory.path(), sub_path))
57{
58}
59
60/*---------------------------------------------------------------------------*/
61/*---------------------------------------------------------------------------*/
62
63Directory::
64Directory(const IDirectory& directory)
65: m_directory_path(directory.path())
66{
67}
68
69/*---------------------------------------------------------------------------*/
70/*---------------------------------------------------------------------------*/
71
72Directory::
73Directory(const Directory& directory)
74: m_directory_path(directory.path())
75{
76}
77
78/*---------------------------------------------------------------------------*/
79/*---------------------------------------------------------------------------*/
80
81Directory& Directory::
82operator=(const IDirectory& from)
83{
84 m_directory_path = from.path();
85 return (*this);
86}
87
88/*---------------------------------------------------------------------------*/
89/*---------------------------------------------------------------------------*/
90
91Directory& Directory::
92operator=(const Directory& from)
93{
94 m_directory_path = from.m_directory_path;
95 return (*this);
96}
97
98/*---------------------------------------------------------------------------*/
99/*---------------------------------------------------------------------------*/
100
101bool Directory::
102createDirectory() const
103{
104 return platform::createDirectory(m_directory_path);
105}
106
107/*---------------------------------------------------------------------------*/
108/*---------------------------------------------------------------------------*/
109
110String Directory::
111path() const
112{
113 return m_directory_path;
114}
115
116/*---------------------------------------------------------------------------*/
117/*---------------------------------------------------------------------------*/
118
119String Directory::
120file(const String& file_name) const
121{
122 return _appendFile(path(), file_name);
123}
124
125/*---------------------------------------------------------------------------*/
126/*---------------------------------------------------------------------------*/
127
128} // namespace Arcane
129
130/*---------------------------------------------------------------------------*/
131/*---------------------------------------------------------------------------*/
132
String path() const override
Retourne le chemin du répertoire.
Definition Directory.cc:111
Constructeur de chaîne de caractère unicode.
Chaîne de caractères unicode.
ARCCORE_BASE_EXPORT bool createDirectory(const String &dir_name)
Créé le répertoire.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-