Вы можете просто использовать метод Save
:
C #:
string IcoFilename = "C:\\Junk\\Default.ico";
using (System.IO.FileStream fs = new System.IO.FileStream(IcoFilename, System.IO.FileMode.Create))
{
this.Icon.Save(fs);
}
Visual Basic:
Dim strFilename As String = "C:\Junk\Default.ico"
Using fs As New System.IO.FileStream(strFilename, IO.FileMode.Create)
Me.Icon.Save(fs)
End Using
Люди от других языков сценариев всегда думают, что их лучше, потому что у них есть встроенная функция, чтобы сделать это и не PHP (я смотрю на Pythonistas прямо сейчас :-)).
На самом деле, это действительно существует, но немного людей знают это. Встретьтесь pathinfo()
:
$ext = pathinfo($filename, PATHINFO_EXTENSION);
Это быстро и встроено. pathinfo()
может дать Вам другую информацию, такую как канонический путь, в зависимости от константы, которую Вы передаете ему.
Помнят, что, если Вы хотите смочь иметь дело с не символы ASCII, необходимо установить локаль сначала. НАПРИМЕР:
setlocale(LC_ALL,'en_US.UTF-8');
кроме того, обратите внимание, что это не учитывает содержание файла или тип пантомимы, Вы только получаете расширение. Но это - то, что Вы попросили.
Наконец, обратите внимание, что это работает только на путь к файлу, не путь ресурсов URL, который покрыт с помощью PARSE_URL.
Обладают
Ответ электронных сати является корректным способом определить расширение файла.
С другой стороны, вместо того, чтобы полагаться на расширение файлов, Вы могли использовать fileinfo для определения файлов тип MIME.
Вот упрощенный пример обработки изображения, загруженного пользователем:
// Code assumes necessary extensions are installed and a successful file upload has already occurred
// Create a FileInfo object
$finfo = new FileInfo(null, '/path/to/magic/file');
// Determine the MIME type of the uploaded file
switch ($finfo->file($_FILES['image']['tmp_name'], FILEINFO_MIME)) {
case 'image/jpg':
$im = imagecreatefromjpeg($_FILES['image']['tmp_name']);
break;
case 'image/png':
$im = imagecreatefrompng($_FILES['image']['tmp_name']);
break;
case 'image/gif':
$im = imagecreatefromgif($_FILES['image']['tmp_name']);
break;
}
$path_info = pathinfo('/foo/bar/baz.bill');
echo $path_info['extension']; // "bill"
$ext = preg_replace('/^.*\.([^.]+)$/D', '$1', $fileName);
preg_replace приближаются к нам использующий поиск регулярного выражения и замену. В функции preg_replace первый параметр является шаблоном к поиску, второй параметр, 1$ является ссылкой на то, что подобрано первым (.*), и третий параметр является именем файла.
Иначе, мы можем также использовать strrpos для нахождения положения последнего вхождения †. ’ в имени файла и инкременте, что положение 1 так, чтобы это взорвало строку от
$ext = substr($fileName, strrpos($fileName, '.') + 1);