Является ли программа файлом

Возвращает TRUE , если файл существует и является обычным файлом, иначе возвращает FALSE .

Замечание: Так как тип integer в PHP является целым числом со знаком и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2ГБ.

Примеры

Пример #1 Пример использования is_file()

var_dump ( is_file ( ‘a_file.txt’ )) . «n» ;
var_dump ( is_file ( ‘/usr/bin/’ )) . «n» ;
?>

Результат выполнения данного примера:

bool(true) bool(false)

Источник: php.ru

Практическое руководство. Определение того, является ли файл сборкой

Файл является сборкой только в том случае, если он является управляемым и содержит запись сборки в своих метаданных. Дополнительные сведения о сборках и метаданных см. в разделе Манифест сборки.

«pip» не является внутренней или внешней командой, исполняемой программой или пакетным файлом.

Как вручную определить, является ли файл сборкой

  1. Запустите Ildasm.exe (дизассемблер IL).
  2. Загрузите файл, который нужно протестировать.
  3. Если программа ILDASM сообщает, что файл не является переносимым исполняемым файлом (PE), то он не является сборкой. Дополнительные сведения см. в разделе Практическое руководство. Просмотр содержимого сборки.

Как программно определить, является ли файл сборкой

Использование класса AssemblyName

  1. Вызовите метод AssemblyName.GetAssemblyName, указав полный путь к файлу и имя файла, который вы тестируете.
  2. Если возникает исключение BadImageFormatException, значит файл не является сборкой.

Этот пример кода проверяет, является ли библиотека DLL сборкой.

using System; using System.IO; using System.Reflection; using System.Runtime.InteropServices; static class ExampleAssemblyName < public static void CheckAssembly() < try < string path = Path.Combine( RuntimeEnvironment.GetRuntimeDirectory(), «System.Net.dll»); AssemblyName testAssembly = AssemblyName.GetAssemblyName(path); Console.WriteLine(«Yes, the file is an assembly.»); >catch (FileNotFoundException) < Console.WriteLine(«The file cannot be found.»); >catch (BadImageFormatException) < Console.WriteLine(«The file is not an assembly.»); >catch (FileLoadException) < Console.WriteLine(«The assembly has already been loaded.»); >> /* Output: Yes, the file is an assembly. */ >
Imports System Imports System.IO Imports System.Reflection Imports System.Runtime.InteropServices Module ExampleAssemblyName Sub CheckAssembly() Try Dim filePath As String = Path.Combine( RuntimeEnvironment.GetRuntimeDirectory(), «System.Net.dll») Dim testAssembly As AssemblyName = AssemblyName.GetAssemblyName(filePath) Console.WriteLine(«Yes, the file is an Assembly.») Catch ex As FileNotFoundException Console.WriteLine(«The file cannot be found.») Catch ex As BadImageFormatException Console.WriteLine(«The file is not an Assembly.») Catch ex As FileLoadException Console.WriteLine(«The Assembly has already been loaded.») End Try End Sub End Module ‘ Output: ‘ Yes, the file is an Assembly.

Читайте также:
Как пользоваться программой ultraiso видео

Метод GetAssemblyName загружает тестовый файл и освобождает его после того, как информация будет прочитана.

Как изменить программу открытия файла по умолчанию

Использование класса PEReader

  1. Если вы используете .NET Standard или платформа .NET Framework, установите пакет NuGet System.Reflection.Metadata. (При нацеливание на .NET Core или .NET 5+ этот шаг не требуется, так как эта библиотека включена в общую платформу.)
  2. Создайте System.IO.FileStream экземпляр для чтения данных из проверяемого файла.
  3. Создайте System.Reflection.PortableExecutable.PEReader экземпляр , передав файловый поток в конструктор.
  4. Проверьте значение HasMetadata свойства . Если значение равно false , файл не является сборкой.
  5. GetMetadataReader Вызовите метод в экземпляре средства чтения PE, чтобы создать средство чтения метаданных.
  6. Проверьте значение IsAssembly свойства . Если значение равно true , файл является сборкой.

GetAssemblyName В отличие от метода , PEReader класс не создает исключение для собственных peable-файлов. Это позволяет избежать дополнительных затрат на производительность, вызванных исключениями, когда необходимо проверка таких файлов. По-прежнему необходимо обрабатывать исключения в случае, если файл не существует или не является PE-файлом.

В этом примере показано, как определить, является ли файл сборкой, с помощью PEReader класса .

using System; using System.Collections.Generic; using System.IO; using System.Reflection.Metadata; using System.Reflection.PortableExecutable; using System.Runtime.InteropServices; static class ExamplePeReader < static bool IsAssembly(string path) < using var fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); // Try to read CLI metadata from the PE file. using var peReader = new PEReader(fs); if (!peReader.HasMetadata) < return false; // File does not have CLI metadata. >// Check that file has an assembly manifest. MetadataReader reader = peReader.GetMetadataReader(); return reader.IsAssembly; > public static void CheckAssembly() < string path = Path.Combine( RuntimeEnvironment.GetRuntimeDirectory(), «System.Net.dll»); try < if (IsAssembly(path)) < Console.WriteLine(«Yes, the file is an assembly.»); >else < Console.WriteLine(«The file is not an assembly.»); >> catch (BadImageFormatException) < Console.WriteLine(«The file is not an executable.»); >catch (FileNotFoundException) < Console.WriteLine(«The file cannot be found.»); >> /* Output: Yes, the file is an assembly. */ >
Imports System Imports System.Collections.Generic Imports System.IO Imports System.Reflection.Metadata Imports System.Reflection.PortableExecutable Imports System.Runtime.InteropServices Module ExamplePeReader Function IsAssembly(path As String) As Boolean Dim fs As FileStream = New FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite) ‘ Try to read CLI metadata from the PE file. Dim peReader As PEReader = New PEReader(fs) Using (peReader) If Not peReader.HasMetadata Then Return False ‘ File does Not have CLI metadata. End If ‘ Check that file has an assembly manifest. Dim reader As MetadataReader = peReader.GetMetadataReader() Return reader.IsAssembly End Using End Function Sub CheckAssembly() Dim filePath As String = Path.Combine( RuntimeEnvironment.GetRuntimeDirectory(), «System.Net.dll») Try If IsAssembly(filePath) Then Console.WriteLine(«Yes, the file is an assembly.») Else Console.WriteLine(«The file is not an assembly.») End If Catch ex As BadImageFormatException Console.WriteLine(«The file is not an executable.») Catch ex As FileNotFoundException Console.WriteLine(«The file cannot be found.») End Try End Sub End Module ‘ Output: ‘ Yes, the file is an Assembly.

Читайте также:
Программа переводчик когда говоришь

См. также

  • AssemblyName
  • Руководство по программированию на C#
  • Основные понятия программирования (Visual Basic)
  • Сборки в .NET

Источник: learn.microsoft.com

Является ли программа на компьютере частью компьютера или чем-то отдельным от него?

1) Если работающий компьютер рассматривать как единое целое, то программа представляет записанные в памяти компьютера коды программы, то есть это фактически некоторое состояние памяти компьютера. То есть программа — это фактически часть компьютера?

2) С другой стороны программа — это нечто временное и привносимое в компьютер. Её можно стереть, заменить, и т.д. То есть она нечто внешнее к компьютеру как чему-то основному, постоянному?

3) «С третьей стороны», если рассматривать компьютер, как нечто развивающееся, реально функционирующее в конкретной среде и обстоятельствах, то программа — это некое переменное свойство компьютера?

Философия Программирование +3
Сергеев Сергей
Отношения между людьми, философия, политика, здоровье, медицина, еда и питание. · 7 апр

Компьютер сначала делают без программ. Программы устанавливают только когда компьютер уже сделан. Так что на время, компьютер и его программы могут быть отдельными.

Но для использования компьютера, надо установить программы в нем. И в это время, компьютер и его программы объединяются и становятся неразделимым одним.

А чтобы польза компьютера не терялась, его программы надо исправлять, дополнять, или даже заменять. Но эти изменения только функцию компьютера меняют и возможно улучшают. Компьютер и его программы продолжают существовать и действовать как неразделимое одно.

Физический компьютер тоже можно разделять на части и эти части изменять или вообще менять на другие. Так что можно смотреть на физический компьютер как сложенные части, или как на одно. А программа компьютера это только одна из частей компьютера, которую тоже можно менять, заменять, или вообще убирать.

Читайте также:
Под управлением какой программы работает любой компьютер ответ на тест

Но если полностью убрать все программы компьютера, то его функция теряется. Потому что это одна из важнейших частей компьютера. Это все равно что убрать экран компьютера или убрать его электрическое снабжение. Без некоторых частей, компьютер не может работать. И программы компьютера это одна из таких частей.

Все это можно сравнить с человеком. Когда человек создается, то сначала получается тело, без всякого знания и понимания. Знания и понимания человек начинает приобретать только после своего рождения, частично через личный опыт и частично через усваивание языка, культуры, и знаний окружающих людей.

Так что вначале, человеческое тело и знания отдельны. Но потом они соединяются и становятся неразделимым одним. И конечно человек со временем исправляет и даже меняет свои знания и понимания или самостоятельно или через перенятие знаний от других людей.

Источник: yandex.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru