フォルダをwinFormアプリケーションに読み込もうとしています。アプリケーションは、フォルダ内のファイルを読み取り、そのファイルに対して何らかの操作を実行する必要があります。次の実装です:パス 'C: Users mehdi Desktop sample Test'へのアクセスが拒否されました
private void button1_Click(object sender, EventArgs e)
{
FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();
DialogResult result = folderBrowserDialog.ShowDialog();
var files = from file in Directory.EnumerateFiles(folderBrowserDialog.SelectedPath, "*.chunk*", SearchOption.AllDirectories)
from line in File.ReadLines(file)
select new
{
File = file,
Line = line
};
string newPath = folderBrowserDialog.SelectedPath;
if (!Directory.Exists(newPath))
{
System.IO.Directory.CreateDirectory(newPath + @"\Test");
}
foreach (var f in files)
{
string path = f.File.ToString();
string filename = Path.GetFileName(path);
string s = string.Empty;
using (StreamReader reader = new StreamReader(path, true))
{
s = reader.ReadToEnd();
reader.Close();
}
string[] parts = s.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
using (File.CreateText(Path.Combine(newPath + @"\Test", filename+".txt")))
{ }
using (StreamWriter sw = File.CreateText(Path.Combine(newPath + @"\Test", filename + ".txt")))
{
string output = string.Empty;
foreach (string st in parts)
{
output += st + ",";
}
sw.Write(output);
}
}
}
ラインusing (File.CreateText(newPath))
上の誤差は言ってあります:
を型 'System.UnauthorizedAccessException' の未処理の例外が
がmscorlib.dllで発生しました追加情報:アクセス'C:\ Users \ mehdi \ Desktop \ sample \ Test'へのパスは拒否されます。
私がしようとしているのは、フォルダを読み込んで各テキストファイルを読み込んで、指定されたタスクを実行する必要があります(ワード間の空白をコンマで置き換えます)新しいフォルダにSystem.IO.Directory.CreateDirectory(newPath);
として作成します。すべて期待どおりに動作していますが、操作が新しく作成されたフォルダTest
にファイルを書き込むことに達すると、そのアクセスが許可されていません。
私は間違っていますか?
確認する:エクスプローラにパスをコピーすると、フォルダは問題やプロンプトが表示されずに開き、アプリケーションが実行され、管理者の資格情報が正しく表示されますか? –
@ManfredRadlwimmer。フォルダは通常のエクスプローラで開きます。アプリケーションは管理者の資格情報で実行されています。ありがとう – Jogi
@ManfredRadlwimmer私は私の質問を編集しました。もう一度行ってください。ありがとう – Jogi