请任何人都可以帮助我我还在想C#,我在我的主窗体上有一个datagridview,目前在那里保存上传的文件信息,但我想检查文件是否存在不上传如果它确实上传但老实说我很难理解fileinfo,directoryinfo之间的差异,以及如何使用它,请看看我的代码, 提前谢谢!
string sqlSt = "Insert into Documents (CategoryID, PathofDocument,DocumentName,FileSize,FileExtension,AddedBy,LastActioned) values (@CategoryID,@FilePath,@FileName,@FileSize,@FileExtension,@AddedBy,@LastActioned)";
OpenFileDialog fi = new OpenFileDialog();
//DialogResult result = fi.ShowDialog();
fi.Filter = "allfiles (*.*)|*.* |Text files(*.txt)|*.txt | Excel Files (*.xls)| *.xls |EmailFiles (*.msg) | *.msg";
string fileio = fi.FileName;
FileInfo file = new FileInfo(fileio);
if (fi.ShowDialog() != DialogResult.OK)
{
if (file.Exists(,fileio))
{ }
// MessageBox.Show("File Already exist" + file.FullName);
}
else
if (file.Exists != true)
{
using (SqlConnection Conn = new SqlConnection(Connstring))
{
using (SqlCommand cmd = new SqlCommand(sqlSt, Conn))
{
Conn.Open();
cmd.Parameters.AddWithValue("CategoryID", treeView1.SelectedNode.Tag);
cmd.Parameters.AddWithValue("@FilePath", Path.GetFullPath(fi.FileName));
cmd.Parameters.AddWithValue("@FileName", Path.GetFileName(file.Name));
cmd.Parameters.AddWithValue("@FileSize", file.Length / 1024);
cmd.Parameters.AddWithValue("@FileExtension", file.Extension);
cmd.Parameters.AddWithValue("@AddedBy", UserCon.Text);
cmd.Parameters.AddWithValue("@LastActioned", file.LastAccessTime);
cmd.ExecuteNonQuery();
SetValueforAddedB = UserCon.Text;
SetValueforType = Typtxt.Text;
Conn.Close();
}
}
答案 0 :(得分:0)
File
有一个静态方法,您可以使用它来查看文件是否存在。
if (File.Exists("path"))
{
// upload code
}
else
{
// show message or whatever
}
我很难理解fileinfo,directoryinfo
之间的区别
FileInfo
用于交互和处理文件。 DirectoryInfo
用于与文件夹(目录)进行交互和处理。
如果要对文件执行单个操作,请使用静态类File
。 Directory
也是如此。但是,如果您正在执行多项操作,例如检查文件是否存在,则读取文件,然后更改文件,然后保存文件,然后使用FileInfo
。
File
和Directory
是静态类。 FileInfo
和DirectoryInfo
是非静态的,因此您可以创建实例,保留实例并对实例执行所有操作。