base: TemporaryDir add DoNotRemove() method
Recursively delete all contents in a temporary directory in the destructor. If the caller wants the contents preserved, then call DoNotRemove(). Test: compile Bug: 119313545 Change-Id: I3601c06334920055a60dd3074b249824f4d6f510
This commit is contained in:
parent
46c2df5812
commit
d2f5888894
|
@ -134,6 +134,8 @@ TemporaryDir::TemporaryDir() {
|
|||
}
|
||||
|
||||
TemporaryDir::~TemporaryDir() {
|
||||
if (!remove_dir_and_contents_) return;
|
||||
|
||||
auto callback = [](const char* child, const struct stat*, int file_type, struct FTW*) -> int {
|
||||
switch (file_type) {
|
||||
case FTW_D:
|
||||
|
|
|
@ -61,12 +61,16 @@ class TemporaryDir {
|
|||
public:
|
||||
TemporaryDir();
|
||||
~TemporaryDir();
|
||||
// Don't remove the temporary dir in the destructor.
|
||||
void DoNotRemove() { remove_dir_and_contents_ = false; }
|
||||
|
||||
char path[1024];
|
||||
|
||||
private:
|
||||
bool init(const std::string& tmp_dir);
|
||||
|
||||
bool remove_dir_and_contents_ = true;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(TemporaryDir);
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue