Hello,
-----Mensagem original-----
De: Pharo-dev [mailto:pharo-dev-bounces@lists.pharo.org ] Em nome de Sven Van Caekenberghe
Enviada em: domingo, 30 de abril de 2017 05:30
Para: Pharo Development List <pharo-dev@lists.pharo.org>
Assunto: Re: [Pharo-dev] Problem with FileSystem in WIndows
> On 30 Apr 2017, at 09:48, Max Leske <maxleske@gmail.com> wrote:
>
> Hi Casimiro,
>
> have you tried using normal slashes in the path name? FileSystem should convert those to system path delimiters automatically. So:
It seems that FileSystem does not convert / into \ .
((FileSystem root) / 'c:\temp\tempfile.txt')�� writeStream won��t work but...
FileStream fileNamed: 'C:\temp\tempfile.txt' works ok.
So... I could make it work for getting a stream both for Unix and Windows:
�� �� �� �� OSPlatform currentPlatformName = 'unix'
�� �� �� �� ifTrue: [
�� �� �� �� �� �� �� �� [ str := (fs / fn) writeStream ] on: Exception do: [ ^ nil ] ]
�� �� �� �� ifFalse: [
�� �� �� �� �� �� �� �� [ str := FileStream fileNamed: fn ] on: Exception do: [ ^ nil ] ].
And to delete:
�� �� �� �� OSPlatform currentPlatformName = 'unix'
�� �� �� �� ifTrue: [
�� �� �� �� �� �� �� �� (FileSystem root / aFileName) delete ]
�� �� �� �� ifFalse: [
�� �� �� �� �� �� �� �� rgx := RxMatcher forString: '^[A-Z]\:'.
�� �� �� �� �� �� �� �� drive := rgx matchesIn: aFileName.
�� �� �� �� �� �� �� �� drive := (drive at: 1) copyWithRegex: '\:' matchesReplacedWith: ''.
�� �� �� �� �� �� �� �� ((FileLocator driveNamed: drive)�� / (aFileName copyWithRegex: '^[A-Z]\:' matchesReplacedWith: '')) delete ]
Not good, nor elegant nor anything close to good transparent code but... works :'(
>
> C:/temp/e8720bb4-b90a-0d00-9b1f-008709e5552b.txt ---
>
> And possibly you'll need a leading slash, as "C:" is a reference to the root of the file system:
>
> /C:/temp/e8720bb4-b90a-0d00-9b1f-008709e5552b.txt
There is also the following option:
�� �� �� �� FileLocator C / 'temp' / 'e8720bb4-b90a-0d00-9b1f-008709e5552b.txt'
> Cheers,
> Max
>
>> On 30 Apr 2017, at 03:15, Casimiro de Almeida Barreto <casimiro.barreto@gmail.com> wrote:
>>
>> Good night all.
>>
>> I��ve had trouble in windows concerning FileSystem.
>>
>> ((FileSystem disk root) / ���C:\temp\e8720bb4-b90a-0d00-9b1f-008709e5552b.txt���) delete
>>
>> Fails as if the file didn��t exist. Message:
>>
>> FileDoesNotExist: Path / ���C:\temp\e8720bb4-b90a-0d00-9b1f-008709e5552b.txt���
>>
>> And I wonder what��s wrong. Because it works in linux and MacOS.
>>
>> Trasncript show: ((FileSYstem disk root) / ���C:\temp\e8720bb4-b90a-0d00-9b1f-008709e5552b.txt���)
>>
>> Returns:
>>
>> File @ C:\temp\e8720bb4-b90a-0d00-9b1f-008709e5552b.txt\
>>
>> And I wonder where the last \ came from and if is it that is messing all and how to fix things.
>>
>> Best regards,
>>
>> Casimiro Barreto
>>
>>�� �� �� Livre de v��rus. www.avast.com.
>
Este email foi escaneado pelo Avast antiv��rus.
https://www.avast.com/antivirus