2016-11-24 27 views
0
DirectoryInfo di = Directory.CreateDirectory(precombine); // I am creating a new directory. 

BinaryWriter write = new BinaryWriter(File.Open(di.FullName, FileMode.Create)); // I want to open a file in it 

write.Write(buffer); // and then I want to write in it. 

ただし、書き込む権限がないというエラーが表示されます。ユーザーのために新しいディレクトリを作成し、そこにユーザーのデータを書き込むにはどうすればよいですか?ありがとう。あなたは、ファイル名が欠落することができるようにあなたがトラブルの権威を書いを持っている場合は新しいディレクトリを作成してファイルを書き込む

+0

ディレクトリを作成する場所を選択した場合は、ユーザーがユーザーのドキュメントフォルダなどの書き込み権限を持つディレクトリを選択します。 – PaulF

+0

それは問題なくディレクトリを作成しますが、その後、新しく作成されたディレクトリに書き込むことはできません。ただし、既存のディレクトリを使用して新しいディレクトリを作成しないと、データが書き込まれます。 –

+0

@CemAytekin注:エラーがある場合は、*常に*正確なエラー自体を投稿してください。エラーを記述したり、その中にwhatsを記述したりするだけではありません。 – Jim

答えて

1

が見えます - 」 di.FullName "は、作成したディレクトリの完全パス名を与えます.File.Openにはファイル名が必要です。あなたのコードで

BinaryWriter write = new BinaryWriter(File.Open(Path.Combine(di.FullName, <FILE NAME HERE>), FileMode.Create)); 

、File.Openは、先ほど作成したディレクトリと同じ名前のファイルを作成しようとするだろう - あなたは権限がありませんので。

+0

これはどのように修正できますか? –

+0

上記のコードは、問題を解決する方法を示しています。ファイル名をディレクトリ名に追加する必要があります。 – PaulF

+0

File.Openに既存のパスを置くとうまくいきます。 –

0

一番下の行のために

string rootPath = @"C:\FileSystem\"; 
string fileName = "data.txt"; 
if (!Directory.Exists(rootPath)) 
Directory.CreateDirectory(rootPath); 

File.AppendAllText(Path.Combine(rootPath , fileName), "Test"); 
File.AppendAllText(Path.Combine(rootPath , fileName), "Test2"); 

"管理者として実行"> Environment.NewLine>は、n \

File.AppendAllText(Path.Combine(rootPath , fileName), "Test2"+Environment.NewLine); 
+0

私は試してみましたが、 "パスへのアクセスが拒否されました"と表示されています –

+0

私は_ "Path.Combine(rootPath、fileName)"と思っています_ – PaulF

+0

@CemAytekin: – PaulF

関連する問題