を使用するときにエラーが拒否されました私は現在、私が働いているすべての私のプロジェクトを持っているUSBデバイスを持っており、それは私のオフィスのドッキングステーションに留まります。昨夜、退屈でプロジェクトを続けたいと思っていましたが、ファイルはありませんでしたか?これは、私のUSBドライブからデスクトップ上のフォルダにすべてのファイルをコピーするコンソールアプリケーションを作成することを考えさせ、特定の時間にスケジュールされたタスクとして実行されます。
問題
私はその後、私のPC上で新しいディレクトリに移動するために、順番にファイルを圧縮するためにSystem.IO.Compression.FileSystemを使用しようとしています。ドキュメントはここに例を与えますZipFile class。 ITは非常に前向きに見えます。しかし、新しい宛先にコピーしようとすると、次のエラーが発生します。
エラー
メッセージ
Access to the path 'C:\Users\er4505\Desktop' is denied.
のStackTrace
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
at System.IO.Compression.ZipFile.Open(String archiveFileName, ZipArchiveMode mode, Encoding entryNameEncoding)
at System.IO.Compression.ZipFile.DoCreateFromDirectory(String sourceDirectoryName, String destinationArchiveFileName, Nullable`1 compressionLevel, Boolean includeBaseDirectory, Encoding entryNameEncoding)
at System.IO.Compression.ZipFile.CreateFromDirectory(String sourceDirectoryName, String destinationArchiveFileName)
at ConsoleApp1.Program.Main(String[] args) in C:\FTG\Projects\CaseWare\ConsoleApp1\Program.cs:line 25
コード
string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
string[] folders = System.IO.Directory.GetDirectories(@"D:\", "*", System.IO.SearchOption.TopDirectoryOnly);
foreach (string folder in folders)
{
ZipFile.CreateFromDirectory(folder, path); << errors out here!
}
あなたのデスクトップ上の特定のフォルダに設定されているパーミッションは何ですか?エラーはかなりまっすぐです。私のコードでは、TempDirが使用されています。あなたが掲示しているあなたの現在のコードに関連していません。また、デバッガを使用してください。コードをステップバイステップで開始します。もしそれがうまくいかなければ、あなたのローカルのフォルダを作成しますc: \ "ドライブにコピーし、そこにコピーしてください。 – MethodMan
@MethodMan修正Temp Dirはこのコードサンプルとは関係ありません。コードブロックを更新します。 – EasyE