Form1 のコンストラクターで、次のことを行いました。
contentDirectory = Path.GetDirectoryName(Application.LocalUserAppDataPath) + "\\SF_" + currentDate;
zippedFileDirectory = Path.GetDirectoryName(Application.LocalUserAppDataPath) + "\\Default_ZippedFile_Directory";
if (!Directory.Exists(zippedFileDirectory))
{
Directory.CreateDirectory(zippedFileDirectory);
}
if (!Directory.Exists(contentDirectory))
{
Directory.CreateDirectory(contentDirectory);
}
ブレークポイントで初めてチェックされzippedFileDirectory
、存在しない場合は作成され、存在しない場合は何もありません。についても同じですcontentDirectory
。
今、私はcontentDirectory
ここにあります:
C:\\Users\\bout0_000\\AppData\\Local\\Diagnostic_Tool_Blue_Screen\\Diagnostic Tool Blue Screen\\SF_04-08-13
内部contentDirectory
には、10個のファイルのようなものがあります。
次にzippedFileDirectory
、次のとおりです。
C:\\Users\\bout0_000\\AppData\\Local\\Diagnostic_Tool_Blue_Screen\\Diagnostic Tool Blue Screen\\Default_ZippedFile_Directory
このディレクトリは空です。
それから私はこのCompress()
方法を持っています:
private void Compress()
{
string source = contentDirectory;
string output = zippedFileDirectory;
string programFilesX86 = System.Environment.GetFolderPath(System.Environment.SpecialFolder.ProgramFilesX86) + "\\Diagnostic Tool\\7z.dll";
if (File.Exists(programFilesX86))
{
SevenZipExtractor.SetLibraryPath(programFilesX86);
}
string programFiles = System.Environment.GetFolderPath(System.Environment.SpecialFolder.ProgramFiles) + "\\Diagnostic Tool\\7z.dll";
if (File.Exists(programFiles))
{
SevenZipExtractor.SetLibraryPath(programFiles);
}
SevenZipCompressor compressor = new SevenZipCompressor();
compressor.ArchiveFormat = OutArchiveFormat.Zip;
compressor.CompressionMode = CompressionMode.Create;
compressor.TempFolderPath = System.IO.Path.GetTempPath();
compressor.CompressDirectory(source, output);
Process.Start(Path.GetFullPath(zippedFileDirectory));
}
何らかの理由で、次のようになります。
compressor.CompressDirectory(source, output);
私は例外を取得しています:
パス「C:\Users\bout0_000\AppData\Local\Diagnostic_Tool_Blue_Screen\Diagnostic Tool Blue Screen\Default_ZippedFile_Directory」へのアクセスが拒否されました。
System.UnauthorizedAccessException は処理されませんでした
HResult=-2147024891
Message=パス 'C:\Users\bout0_000\AppData\Local\Diagnostic_Tool_Blue_Screen\Diagnostic Tool Blue Screen\Default_ZippedFile_Directory' へのアクセスが拒否されました。
zippedFileDirectory
これがロックされている、またはアクセスが拒否されている理由がわかりません。
たとえば、ソースとして他のディレクトリを選択してもd:\test
問題はありません。