[Bug Report Tool] Zip folder can not be created (#12966)
This commit is contained in:
parent
f7333c89bb
commit
f0750997de
2
deps/cziplib
vendored
2
deps/cziplib
vendored
|
@ -1 +1 @@
|
||||||
Subproject commit f9e0959eb212262aff67e8425aceb62d7a518f62
|
Subproject commit 692cbcf8ca3cd90c43d7159da098e0763ecdab38
|
|
@ -299,7 +299,9 @@ int wmain(int argc, wchar_t* argv[], wchar_t*)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef _DEBUG
|
||||||
InstallationFolder::ReportStructure(reportDir);
|
InstallationFolder::ReportStructure(reportDir);
|
||||||
|
#endif
|
||||||
|
|
||||||
// Hide sensitive information
|
// Hide sensitive information
|
||||||
HideUserPrivateInfo(reportDir);
|
HideUserPrivateInfo(reportDir);
|
||||||
|
@ -329,10 +331,6 @@ int wmain(int argc, wchar_t* argv[], wchar_t*)
|
||||||
|
|
||||||
// Zip folder
|
// Zip folder
|
||||||
auto zipPath = path::path(saveZipPath);
|
auto zipPath = path::path(saveZipPath);
|
||||||
std::string reportFilename{"PowerToysReport_"};
|
|
||||||
reportFilename += timeutil::format_as_local("%F-%H-%M-%S", timeutil::now());
|
|
||||||
reportFilename += ".zip";
|
|
||||||
zipPath /= reportFilename;
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,9 +1,17 @@
|
||||||
#include "ZipFolder.h"
|
#include "ZipFolder.h"
|
||||||
#include "..\..\..\..\deps\cziplib\src\zip.h"
|
#include "..\..\..\..\deps\cziplib\src\zip.h"
|
||||||
|
#include <common/utils/timeutil.h>
|
||||||
|
|
||||||
void ZipFolder(std::filesystem::path zipPath, std::filesystem::path folderPath)
|
void ZipFolder(std::filesystem::path zipPath, std::filesystem::path folderPath)
|
||||||
{
|
{
|
||||||
struct zip_t* zip = zip_open(zipPath.string().c_str(), ZIP_DEFAULT_COMPRESSION_LEVEL, 'w');
|
std::string reportFilename{ "PowerToysReport_" };
|
||||||
|
reportFilename += timeutil::format_as_local("%F-%H-%M-%S", timeutil::now());
|
||||||
|
reportFilename += ".zip";
|
||||||
|
|
||||||
|
auto tmpZipPath = std::filesystem::temp_directory_path();
|
||||||
|
tmpZipPath /= reportFilename;
|
||||||
|
|
||||||
|
struct zip_t* zip = zip_open(tmpZipPath.string().c_str(), ZIP_DEFAULT_COMPRESSION_LEVEL, 'w');
|
||||||
if (!zip)
|
if (!zip)
|
||||||
{
|
{
|
||||||
printf("Can not open zip.");
|
printf("Can not open zip.");
|
||||||
|
@ -25,4 +33,18 @@ void ZipFolder(std::filesystem::path zipPath, std::filesystem::path folderPath)
|
||||||
}
|
}
|
||||||
|
|
||||||
zip_close(zip);
|
zip_close(zip);
|
||||||
|
|
||||||
|
std::error_code err;
|
||||||
|
std::filesystem::copy(tmpZipPath, zipPath, err);
|
||||||
|
if (err.value() != 0)
|
||||||
|
{
|
||||||
|
wprintf_s(L"Failed to copy %s. Error code: %d\n", tmpZipPath.c_str(), err.value());
|
||||||
|
}
|
||||||
|
|
||||||
|
err = {};
|
||||||
|
std::filesystem::remove_all(tmpZipPath, err);
|
||||||
|
if (err.value() != 0)
|
||||||
|
{
|
||||||
|
wprintf_s(L"Failed to delete %s. Error code: %d\n", tmpZipPath.c_str(), err.value());
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in a new issue