<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Diego La Monica &#187; File System</title>
	<atom:link href="http://diegolamonica.info/categoria/knowledge-base/visual-basic/file-system/feed/" rel="self" type="application/rss+xml" />
	<link>http://diegolamonica.info</link>
	<description>Software, standards, accessibilità, usabilità &#38; Web 2.0</description>
	<lastBuildDate>Wed, 28 Mar 2012 08:00:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Spostare un file nel cestino di Windows</title>
		<link>http://diegolamonica.info/spostare-un-file-nel-cestino-di-windows/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=spostare-un-file-nel-cestino-di-windows</link>
		<comments>http://diegolamonica.info/spostare-un-file-nel-cestino-di-windows/#comments</comments>
		<pubDate>Fri, 27 Aug 2010 09:23:44 +0000</pubDate>
		<dc:creator>Diego La Monica</dc:creator>
				<category><![CDATA[File System]]></category>
		<category><![CDATA[Knowledge Base]]></category>
		<category><![CDATA[Visual Basic]]></category>
		<category><![CDATA[Cestino]]></category>
		<category><![CDATA[Microsoft Visual Basic]]></category>
		<category><![CDATA[Sviluppo lato Client]]></category>

		<guid isPermaLink="false">http://diegolamonica.info/?page_id=81</guid>
		<description><![CDATA[Tempo addietro, durante lo sviluppo di una procedura lato server, mi capitò di dover gestire l&#8217;eliminazione di alcuni files, ovviamente la prima cosa che feci fu pensare di cancellare direttamente il file&#8230; Ma dopo diverso tempo il cliente mi chiese di modificare tale procedura in modo da non cancellare definitivamente i files ma di spostarli [...]]]></description>
			<content:encoded><![CDATA[<p>Tempo addietro, durante lo sviluppo di una procedura lato server, mi capitò di dover gestire l&#8217;eliminazione di alcuni files, ovviamente la prima cosa che feci fu pensare di cancellare direttamente il file&#8230; Ma dopo diverso tempo il cliente mi chiese di modificare tale procedura in modo da non cancellare definitivamente i files ma di spostarli nel cestino ed avrebbe cestinato lui (in un secondo tempo) quelli che riteneva non più necessari.<span id="more-81"></span></p>
<p>L&#8217;algoritmo che dovetti implementare per cancellare ciascun file fa uso di una API di Windows ed il codice è simile a quello che segue:</p>
<pre name="code" class="vb">Private Type SHFILEOPSTRUCT
 hWnd As Long
 wFunc As Long
 pFrom As String
 pTo As String
 fFlags As Integer
 fAborted As Boolean
 hNameMaps As Long
 sProgress As String
End Type
Private Const FO_DELETE = &amp;H3
Private Const FOF_ALLOWUNDO = &amp;H40
Private Declare Function SHFileOperation Lib "shell32.dll" Alias
  "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long

Public Function SpostaNelCestino(file_name As String)
  Dim SHFileOp As SHFILEOPSTRUCT
  With SHFileOp
   .wFunc = FO_DELETE
   .pFrom = file_name
   .fFlags = FOF_ALLOWUNDO
  End With
  SHFileOperation SHFileOp
End Sub</pre>
]]></content:encoded>
			<wfw:commentRss>http://diegolamonica.info/spostare-un-file-nel-cestino-di-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generare un unico file da più files</title>
		<link>http://diegolamonica.info/generare-un-unico-file-da-piu-files/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=generare-un-unico-file-da-piu-files</link>
		<comments>http://diegolamonica.info/generare-un-unico-file-da-piu-files/#comments</comments>
		<pubDate>Fri, 27 Aug 2010 09:21:00 +0000</pubDate>
		<dc:creator>Diego La Monica</dc:creator>
				<category><![CDATA[File System]]></category>
		<category><![CDATA[Knowledge Base]]></category>
		<category><![CDATA[Visual Basic]]></category>
		<category><![CDATA[Accesso ai files]]></category>
		<category><![CDATA[Microsoft Visual Basic]]></category>

		<guid isPermaLink="false">http://diegolamonica.info/?page_id=79</guid>
		<description><![CDATA[Tempo addietro mi capitò di dover suddividere una serie di files particolarmente grandi su una serie di dischetti avendo un cliente un PC &#8220;leggermente&#8221; obsoleto (Microsoft Windows 95). Il problema era successivamente dover ricongiungere questi files in un unico grande file. Rimarcando la mia fama tra gli amici per non riutilizzare mai software impacchettato e [...]]]></description>
			<content:encoded><![CDATA[<p>Tempo addietro mi capitò di dover suddividere una serie di files particolarmente grandi su una serie di dischetti avendo un cliente un <dfn title="Personal Computer">PC</dfn> &#8220;leggermente&#8221; obsoleto (Microsoft Windows 95). Il problema era successivamente dover ricongiungere questi files in un unico grande file.</p>
<p>Rimarcando la mia fama tra gli amici per non riutilizzare mai software impacchettato e freeware, ma sempre propenso a sviluppare internamente quella specifica funzione ad-hoc, decisi di svilupparmi una procedura per lo splitting del file in una serie di n files di una determinata dimensione ed ovviamente sviluppai anche la funzione per la ricongiunzione dei files in un unico grande file.</p>
<p><span id="more-79"></span>Il frammento di codice che trovate di seguito, è estratto da un progetto leggermente più grosso ed ho preferito riportare semplicemente l&#8217;essenziale per comprendere come funziona il tutto:</p>
<pre>Dest = FreeFile
 MergedFile = "C:\Merged.txt"
 Offset = 1
 Open MergedFile for Binary Access Write Lock Read As FDest
 For I=Lbound(filesArray) to UBound(filesArray)
 FSorg = FreeFile
 Open filesArray(I) for binary Access Read Lock Write as FSorg
 S=String(Lof(FSorg),chr(0))
 Get FSorg,1,S
 Close FSorg
 Put FDest,Offset, S
 Offset = Offset + len(S)
 next
 Close FDest</pre>
<p><em>Questa procedura preleva da un array<strong> filesArray</strong> i nomi dei files da concatenare e li salva in un unico file indicato nella variabile <strong>MergedFile</strong></em></p>
]]></content:encoded>
			<wfw:commentRss>http://diegolamonica.info/generare-un-unico-file-da-piu-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

