Футбольная команда не является списком футболистов. Футбольная команда состоит из списка футболистов!
Это логически неверно:
class FootballTeam : List<FootballPlayer>
{
public string TeamName;
public int RunningTotal
}
, и это верно:
class FootballTeam
{
public List<FootballPlayer> players
public string TeamName;
public int RunningTotal
}
Вы можете определить, существует ли указанный файл, используя метод Exists
класса File
в пространстве имен System.IO
:
bool System.IO.File.Exists(string path)
Документацию можно найти здесь, на MSDN. .
Пример:
using System;
using System.IO;
class Test
{
public static void Main()
{
string resumeFile = @"c:\ResumesArchive\923823.txt";
string newFile = @"c:\ResumesImport\newResume.txt";
if (File.Exists(resumeFile))
{
File.Copy(resumeFile, newFile);
}
else
{
Console.WriteLine("Resume file does not exist.");
}
}
}
Чтобы протестировать, существует ли файл в.NET, можно использовать
System.IO.File.Exists (String)
if (File.Exists(Server.MapPath("~/Images/associates/" + Html.DisplayFor(modelItem => item.AssociateImage))))
{
<img src="~/Images/associates/@Html.DisplayFor(modelItem => item.AssociateImage)">
}
else
{
<h5>No image available</h5>
}
Я сделал что-то подобное, чтобы проверить, существует ли изображение перед его отображением.
Простой ответ - то, что Вы не можете - Вы не быть в состоянии проверить на файл на их машине от веб-сайта ASP, сделать так было бы опасным риском для них.
необходимо дать им контроль загрузкой файла - и нет очень, можно сделать с тем управлением. Из соображений безопасности JavaScript не может действительно коснуться его.
<asp:FileUpload ID="FileUpload1" runat="server" />
Они тогда выбирают файл для загрузки, и необходимо иметь дело с любым пустым файлом, что они могли бы повысить сторону сервера.
Попробуйте это:
string fileName = "6d294041-34d1-4c66-a04c-261a6d9aee17.jpeg";
string deletePath= "/images/uploads/";
if (!string.IsNullOrEmpty(fileName ))
{
// Append the name of the file to previous image.
deletePath += fileName ;
if (File.Exists(HttpContext.Current.Server.MapPath(deletePath)))
{
// deletevprevious image
File.Delete(HttpContext.Current.Server.MapPath(deletePath));
}
}
Вы могли использовать:
System.IO.File.Exists(@"c:\temp\test.txt");
Пока не могу комментировать, но я просто хотел не согласиться / уточнить с erikkallen .
Вы не должны просто поймать исключение в описанной вами ситуации. Если вы ЗНАЕТЕ, что файл должен быть там, и из-за какого-то исключительного случая это не так, тогда было бы приемлемо просто попытаться получить доступ к файлу и перехватить любое возникшее исключение.
В этом случае, однако, вы получаете ввод от пользователя, и у вас мало оснований полагать, что файл существует. Здесь вы всегда должны использовать File.Exists ().
Я знаю, что это клише, но вы должны использовать Исключения только для исключительного события, а не как часть обычного потока вашего приложения. Это дорого и делает код более трудным для чтения / отслеживания.
Эти ответы все принимают файл, который Вы проверяете, находятся на стороне сервера. К сожалению, нет никакого литейного чугуна способа гарантировать, что файл существует на стороне клиента (например, если Вы загружаете резюме). Несомненно, можно сделать это в JavaScript, но Вы все еще не собираетесь быть 100%, уверенными в стороне сервера.
лучший способ обработать это, по-моему, должно предположить, что пользователь на самом деле выберет соответствующий файл для загрузки, и затем сделает любую работу, которую необходимо сделать, чтобы гарантировать, что загруженный файл - то, что Вы ожидаете (подсказка - предполагают, что пользователь пытается отравить Вашу систему каждым возможным способом с его входом)
Вы написали asp.net - вы хотите загрузить файл?
, если вы можете использовать html
< input type = "file" ...
В дополнение к использованию File.Exists()
, Вы могли бы быть более обеспечены просто попытка использовать файл и ловлю любого исключения, которое выдается. Файл может не открыться из-за других вещей, чем не существующий.
Это может помочь вам.
try
{
con.Open();
if ((fileUpload1.PostedFile != null) && (fileUpload1.PostedFile.ContentLength > 0))
{
filename = System.IO.Path.GetFileName(fileUpload1.PostedFile.FileName);
ext = System.IO.Path.GetExtension(filename).ToLower();
string str=@"/Resumes/" + filename;
saveloc = (Server.MapPath(".") + str);
string[] exts = { ".doc", ".docx", ".pdf", ".rtf" };
for (int i = 0; i < exts.Length; i++)
{
if (ext == exts[i])
fileok = true;
}
if (fileok)
{
if (File.Exists(saveloc))
throw new Exception(Label1.Text="File exists!!!");
fileUpload1.PostedFile.SaveAs(saveloc);
cmd = new SqlCommand("insert into candidate values('" + candidatename + "','" + candidatemail + "','" + candidatemobile + "','" + filename + "','" + str + "')", con);
cmd.ExecuteNonQuery();
Label1.Text = "Upload Successful!!!";
Label1.ForeColor = System.Drawing.Color.Blue;
con.Close();
}
else
{
Label1.Text = "Upload not successful!!!";
Label1.ForeColor = System.Drawing.Color.Red;
}
}
}
catch (Exception ee) { Label1.Text = ee.Message; }
Я написал этот код в vb, и он отлично работает, чтобы проверить, существует файл или нет для контроля загрузки файла. попробуйте
ДЛЯ VB CODE ============
If FileUpload1.HasFile = True Then
Dim FileExtension As String = System.IO.Path.GetExtension(FileUpload1.FileName)
If FileExtension.ToLower <> ".jpg" Then
lblMessage.ForeColor = System.Drawing.Color.Red
lblMessage.Text = "Please select .jpg image file to upload"
Else
Dim FileSize As Integer = FileUpload1.PostedFile.ContentLength
If FileSize > 1048576 Then
lblMessage.ForeColor = System.Drawing.Color.Red
lblMessage.Text = "File size (1MB) exceeded"
Else
Dim FileName As String = System.IO.Path.GetFileName(FileUpload1.FileName)
Dim ServerFileName As String = Server.MapPath("~/Images/Folder1/" + FileName)
If System.IO.File.Exists(ServerFileName) = False Then
FileUpload1.SaveAs(Server.MapPath("~/Images/Folder1/") + FileUpload1.FileName)
lblMessage.ForeColor = System.Drawing.Color.Green
lblMessage.Text = "File : " + FileUpload1.FileName + " uploaded successfully"
Else
lblMessage.ForeColor = System.Drawing.Color.Red
lblMessage.Text = "File : " + FileName.ToString() + " already exsist"
End If
End If
End If
Else
lblMessage.ForeColor = System.Drawing.Color.Red
lblMessage.Text = "Please select a file to upload"
End If
ДЛЯ C # CODE =============== =======
if (FileUpload1.HasFile == true) {
string FileExtension = System.IO.Path.GetExtension(FileUpload1.FileName);
if (FileExtension.ToLower != ".jpg") {
lblMessage.ForeColor = System.Drawing.Color.Red;
lblMessage.Text = "Please select .jpg image file to upload";
} else {
int FileSize = FileUpload1.PostedFile.ContentLength;
if (FileSize > 1048576) {
lblMessage.ForeColor = System.Drawing.Color.Red;
lblMessage.Text = "File size (1MB) exceeded";
} else {
string FileName = System.IO.Path.GetFileName(FileUpload1.FileName);
string ServerFileName = Server.MapPath("~/Images/Folder1/" + FileName);
if (System.IO.File.Exists(ServerFileName) == false) {
FileUpload1.SaveAs(Server.MapPath("~/Images/Folder1/") + FileUpload1.FileName);
lblMessage.ForeColor = System.Drawing.Color.Green;
lblMessage.Text = "File : " + FileUpload1.FileName + " uploaded successfully";
} else {
lblMessage.ForeColor = System.Drawing.Color.Red;
lblMessage.Text = "File : " + FileName.ToString() + " already exsist";
}
}
}
} else {
lblMessage.ForeColor = System.Drawing.Color.Red;
lblMessage.Text = "Please select a file to upload";
}