2011-12-07 16 views
2

I持ちで、次のコードVSTOアドイン私はOutlookの書いている:私は、添付ファイルを保存しようとするまでUNCパスへの電子メールの添付ファイルを保存する

 savefolder = Regex.Replace(Guid.NewGuid().ToString(), @"[- ]", String.Empty); 

     savepathfull = string.Format(@"{0}{1}", netloc, savefolder); 
     DirectoryInfo di = new DirectoryInfo(@savepathfull); 
     if (!(di.Exists)) 
      Directory.CreateDirectory(@savepathfull); 



     removedFiles = new List<string>(); 

     for (int d = attachs.Count; d > 0; d--) 
     { 
      if (attachs[d].Size > smallAttachment) 
      { 
       removedFiles.Add(attachs[d].FileName); 
       attachs[d].SaveAsFile(savepathfull); 
      } 
     } 

すべてが正常に動作します、で私はUnauthorizedAccessExceptionを受け取ります。テストユーザーがフォルダに対する完全な権限を持っていることがわかっていますが、まだこのエラーが表示されます。

アイデア?

ありがとうございました。

+0

?例外メッセージとスタックトレースも投稿できますか? –

+0

私はそこにあるディレクトリを削除して、Directory.CreateDirectoryのエラーが{}内のif文をラップするようにして、追加の作業をしたいと思うかもしれません。コードは、それがエラーを返した場合、それはあなたがネットワーク共有またはフォルダへのアクセス権を持っているんだろう権利/アクセス権の問題だ...エラーではないだろうか..? – MethodMan

+1

私はあなたの実装によって混乱しています。 'savepathfull'はファイルかディレクトリですか? _( '; attachs [D] .SaveAsFile(savepathfull)' 'と' Directory.CreateDirectory(@savepathfull))あなたは、両方_としてそれを使用しているように見えます。 – SliverNinja

答えて

6

あなたはAttachment.SaveAsFileを呼び出すときに有効なファイル名を提供する必要があります。ファイルではなくディレクトリに保存しようとしています。 reference codeのMSDNを参照してください。行が例外をスローし

attachs[d].SaveAsFile(Path.Combine(savepathfull, attachs[d].DisplayName); 
+0

1ウェル@AdamRalphと合意した –

+0

を見つけました。 IDEは変数として文字列パスのみを記述します。私はまずMSDNをチェックしておくべきだと思います。 –

関連する問題