2010-12-13 6 views
1

私は、次のコード(多かれ少なかれ)を持っている:ユーザーが作成したフォルダにファイルを保存する

private static void SaveFolder(MyFolder folder, string location) 
{ 
    string folderName = Path.Combine(location, folder.Name); 
    DirectoryInfo di = Directory.CreateDirectory(folderName); 
    foreach (MyFile childItem in folder.Children) 
    { 
    string fileName = Path.Combine(di.FullName, childItem.Name); 
    byte[] payload = GetFilePayload(childItem); 
    File.WriteAllBytes(fileName, payload); 
    } 
} 

アプリケーションですオフィスアドイン、管理者がマシン上にあるユーザーの下で実行されています( (File.WriteAllBytes行)を作成すると、UnauthorizedAccessExceptionが発生します。

作成したばかりのフォルダにファイルを保存できないのはなぜですか?

+0

folder.Childrenには何が入っていますか? これはおそらく、フォルダiteslfを含んでいます。 – TalentTuner

+0

@Saurabh 'folder.Children'は、' MyFile'型のオブジェクトを含んでいます。 –

+0

@Saurabh - はい、 'folder.Children'にはファイルに保存できる項目があります。そして、私がそれらを「場所」の場所に保存しようとすると、問題なく保存されます。 – SWeko

答えて

1

申し訳ありませんが、人々は、それは本質的

File.WriteAllBytes(folderName, payload); 

:(

OSは、ファイルを保存しようとしていたに

File.WriteAllBytes(fileName, payload); 

を変換し、いくつかの他のコードで愚かなバグがありましたフォルダと同じ名前で、WTFは私が受け取っていた例外です。それは接線で私を送ります。

関連する問題