我有两个包含相同文件的文件夹。我正在尝试从一个文件夹中的文件中读取内容,然后在另一个文件夹中使用相同名称写入文件。
我尝试了File.WriteAllText,但它给了我一个未处理的异常错误
System.IO.DirectoryNotFoundException:“找不到路径'C:\ Users \ test \ Desktop \'的一部分。”
public function addBlock(PageBlock $block) : void
{
$block->setPage($this);
$this->blocks->add($block);
}
public function removeBlock(PageBlock $block) : void
{
$block->setPage(null);
$this->blocks->remove($block);
}
我要更改目录中的所有文件。
答案 0 :(得分:4)
您忘记了包含目标文件的文件名。将最后一部分更改为:
var fi = new FileInfo(file);
File.WriteAllText(Path.Combine(targetDirectory, fi.Name), newFile.ToString());
这假定newFile.ToString()实际上是您想要的 目标文件中的内容:-)
答案 1 :(得分:0)
展开James answer,添加检查目录是否存在的检查可能会解决您的问题。
var fi = new FileInfo(file);
if(!fi.Directory.Exists)
fi.Directory.Create()
File.WriteAllText(Path.Combine(targetDirectory, fi.Name), newFile.ToString());