<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=51075&amp;view=findpost&amp;p=991690</guid>
        <pubDate>Sat, 21 Jan 2006 11:53:40 +0000</pubDate>
        <title>Найти файл</title>
        <link>https://forum.sources.ru/index.php?showtopic=51075&amp;view=findpost&amp;p=991690</link>
        <description><![CDATA[SCINER: Единственная правильная и самая точная функция поиска файлов/папок:<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Option Explicit</div><div class="code_line">&nbsp;</div><div class="code_line">&#39;Created by SCINER: lenar2003@mail.ru</div><div class="code_line">&#39;Функция поиска файлов/папок</div><div class="code_line">Private Const MAX_PATH = 260</div><div class="code_line">&nbsp;</div><div class="code_line">Public Enum FindObjectType</div><div class="code_line">&nbsp;&nbsp;fNotFound = 0</div><div class="code_line">&nbsp;&nbsp;fFindFolder = 1</div><div class="code_line">&nbsp;&nbsp;fFindFile = 2</div><div class="code_line">End Enum</div><div class="code_line">&nbsp;</div><div class="code_line">Private Type FILETIME</div><div class="code_line">&nbsp;&nbsp;dwLowDateTime As Long</div><div class="code_line">&nbsp;&nbsp;dwHighDateTime As Long</div><div class="code_line">End Type</div><div class="code_line">&nbsp;</div><div class="code_line">Private Type WIN32_FIND_DATA</div><div class="code_line">&nbsp;&nbsp;dwFileAttributes As Long</div><div class="code_line">&nbsp;&nbsp;ftCreationTime As FILETIME</div><div class="code_line">&nbsp;&nbsp;ftLastAccessTime As FILETIME</div><div class="code_line">&nbsp;&nbsp;ftLastWriteTime As FILETIME</div><div class="code_line">&nbsp;&nbsp;nFileSizeHigh As Long</div><div class="code_line">&nbsp;&nbsp;nFileSizeLow As Long</div><div class="code_line">&nbsp;&nbsp;dwReserved0 As Long</div><div class="code_line">&nbsp;&nbsp;dwReserved1 As Long</div><div class="code_line">&nbsp;&nbsp;cFileName As String * MAX_PATH</div><div class="code_line">&nbsp;&nbsp;cAlternate As String * 14</div><div class="code_line">End Type</div><div class="code_line">&nbsp;</div><div class="code_line">Private Const INVALID_HANDLE_VALUE = -1</div><div class="code_line">Private Declare Function FindClose Lib &quot;kernel32&quot; (ByVal hFindFile As Long) As Long</div><div class="code_line">Private Declare Function FindFirstFile Lib &quot;kernel32&quot; Alias &quot;FindFirstFileA&quot; (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long</div><div class="code_line">&nbsp;</div><div class="code_line">Private Sub Form_Load()</div><div class="code_line">&nbsp;&nbsp;Dim Tmp As String</div><div class="code_line">&nbsp;&nbsp;&#39;Пример</div><div class="code_line">&nbsp;&nbsp;If Find(&quot;c:.bmp&quot;) = fFindFile Then MsgBox &quot;Файл найден&quot;</div><div class="code_line">&nbsp;&nbsp;If Find(&quot;c:\WINNT&quot;) = fFindFolder Then MsgBox &quot;Папка найдена&quot;</div><div class="code_line">End Sub</div><div class="code_line">&nbsp;</div><div class="code_line">&#39;Если путь [Не найден] возвращает 0</div><div class="code_line">&#39;Если путь [Папка] возвращает 1</div><div class="code_line">&#39;Если путь [Файл] возвращает 2</div><div class="code_line">Function Find(ByVal Path As String) As FindObjectType</div><div class="code_line">&nbsp;&nbsp;Dim lRet As Long</div><div class="code_line">&nbsp;&nbsp;Dim W32 As WIN32_FIND_DATA</div><div class="code_line">&nbsp;&nbsp;If VBA.Right$(Path, 1) = &quot;\&quot; Then Path = VBA.Left$(Path, Len(Path) - 1)</div><div class="code_line">&nbsp;&nbsp;lRet = FindFirstFile(Path, W32)</div><div class="code_line">&nbsp;&nbsp;If lRet = INVALID_HANDLE_VALUE Then Exit Function</div><div class="code_line">&nbsp;&nbsp;Call FindClose(lRet)</div><div class="code_line">&nbsp;&nbsp;Find = IIf(W32.dwFileAttributes And vbDirectory, fFindFolder, fFindFile)</div><div class="code_line">End Function</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>SCINER</author>
        <category>Работа с файлами&#092;папками</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=51075&amp;view=findpost&amp;p=336339</guid>
        <pubDate>Sun, 11 Apr 2004 23:24:25 +0000</pubDate>
        <title>Найти файл</title>
        <link>https://forum.sources.ru/index.php?showtopic=51075&amp;view=findpost&amp;p=336339</link>
        <description><![CDATA[SCINER: Найти файл в определенной папке с определенным именем используя приоритет (т.е. если в папке несколько файлов с одним именем но с разными расширениями то вернуть путь к файлу стоящий выше по заданному приоритету.)<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Public Function FileByPriority(ByVal sPath As String, Optional ByVal Filename As String = &quot;*&quot;, Optional ByVal Extensions As String = &quot;.bmp;.jpg;.gif&quot;) As String</div><div class="code_line">&nbsp;&nbsp;sPath = sPath &amp; IIf(VBA.Right$(sPath, 1) = &quot;\&quot;, vbNullString, &quot;\&quot;)</div><div class="code_line">&nbsp;&nbsp;Dim i As Long</div><div class="code_line">&nbsp;&nbsp;Dim ExT() As String</div><div class="code_line">&nbsp;&nbsp;Dim A As String</div><div class="code_line">&nbsp;&nbsp;ExT = Split(Extensions &amp; &quot;;&quot;, &quot;;&quot;)</div><div class="code_line">&nbsp;&nbsp;For i = 0 To UBound(ExT)</div><div class="code_line">&nbsp;&nbsp; &nbsp;If A = vbNullString Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;A = Dir$(sPath &amp; Filename &amp; ExT(i))</div><div class="code_line">&nbsp;&nbsp; &nbsp;Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Exit For</div><div class="code_line">&nbsp;&nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp;Next</div><div class="code_line">&nbsp;&nbsp;If A &#60;&#62; vbNullString Then FileByPriority = sPath &amp; A</div><div class="code_line">End Function</div><div class="code_line">&nbsp;</div><div class="code_line">&#39;Пример</div><div class="code_line">Private Sub Form_Load()</div><div class="code_line">&nbsp;&nbsp;Dim Tmp As String</div><div class="code_line">&nbsp;&nbsp;Tmp = FileByPriority(&quot;c:\&quot;, &quot;1&quot;, &quot;.bmp;.jpg;&quot;)</div><div class="code_line">&nbsp;&nbsp;MsgBox Tmp</div><div class="code_line">End Sub</div></ol></div></div></div></div>]]></description>
        <author>SCINER</author>
        <category>Работа с файлами&#092;папками</category>
      </item>
	
      </channel>
      </rss>
	