我正在使用C#创建一个函数来将数据写入文件系统中的文件,如果文件不存在,则重新创建并重复函数。
只是编写数据的第一种方法是有效的。但是第二种方法,如果文件不存在而程序必须首先创建它,则不起作用。它创建文件但同时在Visual Studio中向我抛出一个异常
System.NotSupportedException未处理
我正在使用MSDN所拥有的完整代码副本。
http://msdn.microsoft.com/en-us/library/d62kzs03(v=vs.110).aspx
以下是我在第二个代码块中使用的内容
// Create file!
using (FileStream fs = File.Create(file))
{
Byte[] info = new UTF8Encoding(true).GetBytes("some text in the file.");
// Add some information to the file.
fs.Write(info, 0, info.Length);
}
// Continue again with the request.
createFile(file);
方法声明(如果需要)为
private static void createFile (string fileName) {
string file = "C:\\Users\\AfzaalAhmad\\Documents\\" + fileName + ".txt";
/* two methods here */
}
图像如下:(注意文件路径中没有错误)我使用过
Console.Write(file); // to get the path, and its OK!
见下图↓
请注意,它确实在Documents文件夹中创建了该文件。但抛出这个例外。我在这里做错了什么?
答案 0 :(得分:2)
请注意例外报告中的详细信息:"不支持给定路径的格式。"
另请查看变量file
的内容 - 它似乎是@" C:\ Users \ AfzaalAhmad \ Documents \ C:\ Users ..." - 即它包含两次路径。
因此即使操作系统可能以某种方式管理创建某种文件,文件名也不包含有效值。
[edit] createFile(file);
和Console.Write(file);
都取值@" C:\ Users \ AfzaalAhmad \ Documents \ dsg b.txt"但是你的方法createFile
然后第二次添加路径。将其更改为:
private static void createFile (string file) {
/* two methods here */
}
答案 1 :(得分:0)
请准确查看异常消息和文件变量的值!有你的错误!